求大神优化
走你.....................
import java.util.Scanner;
class Flower
{
public static void main(String[] args)
{
while (true)
{
Scanner sc=new Scanner(System.in);
System.out.print("请输入数据:");
int max=sc.nextInt();
if (max<1)
{
System.out.println("你输入的数据不合法");
}else
{
int count = 0;
System.out.print("水仙花数有:");
for(int x=100;x<=max;x++)
{
int sum=0;
int y=x;
int weishu=0;
int z=x;
//获取这个数的位数
while (y!=0)
{
weishu++;
y/=10;
}
//每个数位上的数取数位次幂后累加。
while (z!=0)
{
int a=1;//定义一个变量用来存储每个数位上的数的位数次幂。
for (int b=0;b<weishu ;b++ )
{
a=a*(z%10);
}
sum=sum+a;
z=z/10;
}
//用sum与原数进行比较。
if (sum==x)
{
System.out.print(x+" ");
count++;
}
}
System.out.println();
System.out.println("********************************");
System.out.println("1到"+max+"水仙花数一共有:"+count+"个");
}
}
}
}
|
|