黑马程序员技术交流社区
标题:
所有程序员必须经历的一道基础题
[打印本页]
作者:
n361204357
时间:
2015-7-25 00:06
标题:
所有程序员必须经历的一道基础题
需求;
打印出所有的"水仙花数"。
所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:
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
*/
}
}
作者:
halohoop
时间:
2015-7-25 00:45
学习了!!!!
作者:
fantianfei
时间:
2015-7-25 01:02
有时间看看。
作者:
eayonh
时间:
2015-7-25 06:42
学习了……
作者:
蔡锐
时间:
2015-7-25 08:30
学习学习
作者:
wy911011
时间:
2015-7-27 23:04
学习学习
作者:
Claw
时间:
2015-7-27 23:14
为什么全是注释
作者:
任有智双元
时间:
2015-7-27 23:28
.................................
作者:
chad8753
时间:
2015-7-28 00:06
学习了,,,
作者:
T-l-H、小生
时间:
2015-7-28 00:19
看看,挺有意思的一道题。
作者:
章浩
时间:
2015-7-28 00:31
为什么这么水
作者:
泛大陆
时间:
2015-7-28 08:22
好吧,又懂了什么叫水仙花数
作者:
libin
时间:
2015-7-28 09:06
/*题目:打印出三位数的所有水仙花数
思路:利用三层循环遍历所有的三位数,判断如果为水仙花数则打印出来
*/
class Test
{
public static void main(String[] args)
{
for(int i=1;i<10;i++) //外层循环,代表百位数,从1~9
{
for(int j=0;j<10;j++) //中层循环,代表百位数,从0~9
{
for(int k=0;k<10;k++) //里层循环,代表个位数,从0~9
{
if((i*100+j*10+k)==(i*i*i+j*j*j+k*k*k))
System.out.println(i*100+j*10+k);
}
}
}
}
}
复制代码
用了第一种方法
作者:
halohoop
时间:
2015-7-28 09:08
程序看起来确实不是很方便!
作者:
xiaoshaoye
时间:
2015-7-28 10:04
看看,学习学习。总结总结
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2