需求;
打印出所有的"水仙花数"。
所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:
153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。
这道题应该是程序员必须经历的一道题,体现一个程序员的思路问题。
这道题有很多方法可以实现,检验一下自己吧。
提示:
1:采用循环取得所有的三位数。(三位数指的是100-999之间的数)。
2:把每个三位数的个位,十位,百位进行分解。
附思路和总结
/*
for(int x=100;x<1000;x++)
{
//if(x==(((x-x%100))/100)*(((x-x%100))/100)*(((x-x%100))/100)+((x%100)/10)*((x%100)/10)*((x%100)/10)+(x%10)*(x%10)*(x%10))
//System.out.println(x);
/*
for(int x=100;x<1000;x++){
int a=x%10;
int b=x/10%10;
int c=x/10/10%10;
if(x==a*a*a+b*b*b+c*c*c){
System.out.println(x)
}
*/
for (int a=1;a<10 ;a++ )
{
for (int b=0;b<10 ;b++ )
{
for (int c=0;c<10 ;c++ )
{
if ((a*100+b*10+c)==(a*a*a+b*b*b+c*c*c))
{
System.out.println(a*100+b*10+c);
}
}
/*
int i =100;
for(;i<1000;i++)
{
int x =i%10;
int y =i%100/10;
int z =i/100;
if(x*x*x+y*y*y+z*z*z==i)
{
System.out.println("i="+i);*/
/*取个位 x%10
取10位 x\10%10 x%100/10
取100位 x\10\10%10 x/100 (x-x%100)/100
*/
}
}
|
|