怎样用Java编写“水仙花”
发布网友
发布时间:2022-04-22 22:44
我来回答
共5个回答
热心网友
时间:2023-07-08 01:12
水仙花数是指一个 n 位数 ( n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身。(例如:1^3 + 5^3+ 3^3 = 153)
热心网友
时间:2023-07-08 01:12
public class ShuiXianShu
{
/**
* 题目:打印出100-999之间所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。
* 例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。
* 1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。*
*/
public static void main(String[] args)
{
for(int i=100;i<=999;i++)
{
int geWei,shiWei,Wei;
Wei=i/100;
shiWei=(i-Wei*100)/10;
geWei=i-Wei*100-shiWei*10;
if(i==geWei*geWei*geWei+shiWei*shiWei*shiWei+Wei*Wei*Wei)
{
System.out.println(i);
}
}
}
}
热心网友
时间:2023-07-08 01:13
public class Flower {
public static void isNumber(int num)
{
String numm=""+ num;//首先把你输入的整型数转换成字符类型
int len=numm.length();//得到你输入的数的个数(你要判断的数是三位数、四位数、、、)
int [] nums=new int [len];//声明一个数组来保存输入的这个数分别拆分后的单个值,如153 (1、5、3)
int temp=0,i=0;
while(num>10)//用循环分别把这个位的每个位上的值保存在数组中
{
nums[i] = num % 10;
String nu=numm.substring(0, (numm.length()-(i+1)));
num =Integer.parseInt(nu);
i++;
if(num<10)
{
nums[i]=num;
break;
}
}
for (int j = 0; j < nums.length;j++)
{//用循环得到数组中无素的值累加
temp += (int) Math.pow(nums[j], nums.length);
}
num=Integer.parseInt(numm);
if(temp==num)//判断累加后的结果是否与输入的值一致
{
System.err.println(num+"是水仙花数!");
}else
{
System.err.println(num+"不是水仙花数!"); }
}
public static void main(String [] args)
{
Scanner input =new Scanner(System.in);
System.out.println("请输入一个数字:");
int num = input.nextInt();
isNumber(num);
}
}
热心网友
时间:2023-07-08 01:13
import java.util.Scanner;
public class T {
public static void isNumber(int num)
{
String numm=""+ num;//首先把你输入的整型数转换成字符类型
int len=numm.length();//得到你输入的数的个数(你要判断的数是三位数、四位数、、、)
int [] nums=new int [len];//声明一个数组来保存输入的这个数分别拆分后的单个值,如153 (1、5、3)
int temp=0,i=0;
while(num>10)//用循环分别把这个位的每个位上的值保存在数组中
{
nums[i] = num % 10;
String nu=numm.substring(0, (numm.length()-(i+1)));
num =Integer.parseInt(nu);
i++;
if(num<10)
{
nums[i]=num;
break;
}
}
for (int j = 0; j < nums.length;j++)
{//用循环得到数组中无素的值累加
temp += (int) Math.pow(nums[j], nums.length);
}
num=Integer.parseInt(numm);
if(temp==num) {//判断累加后的结果是否与输入的值一致
System.err.println(num+"是水仙花数!");
} else {
System.err.println(num+"不是水仙花数!"); }
}
public static void main(String [] args)
{
Scanner input =new Scanner(System.in);
System.out.println("请输入一个数字:");
int num = input.nextInt();
isNumber(num);
}
}
热心网友
时间:2023-07-08 01:14
public class ShuiXianShu
{
public static void main(String[] args)
{
//打印出100-999之间所有的"水仙花数
for(int i=100;i<=999;i++)
{
//各位,十位,百位
int geWei,shiWei,Wei;
Wei=i/100;
shiWei=(i-Wei*100)/10;
geWei=i-Wei*100-shiWei*10;
if(i==geWei*geWei*geWei+shiWei*shiWei*shiWei+Wei*Wei*Wei)
{
System.out.println(i);
}
}
}
}
有什么其他问题可以再问我