java实现水仙花数(经典算法问题)
**
用java实现100-999中水仙花数的输出
**题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。
程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。 以153举例:153=100+50+3=111+555+333 分析:提到水仙花数先想到% /这两个,153%100=53;153/100=1; 153/10=15;153%10=3;由此可见只需要将153分别进行处理就可以进行计算。 先进行一次循环,将要求的的100-999之间的数输出出来,(a,b,c,i,皆为整型变量) 设百位为a;十位为b;个位为c;i为100-999中的数; i/100运算完的结果为百位a; 用(i-100)再/10则得出十位b; 个位则直接对i%10得出十位c; a的三次方+b的三次方+c的三次方=总和,此时进行判断如果总和 i 的值相等则输出即可,代码如下:
public static void main(String[] args) { int a =0; int b= 0; int c=0; for(int i=100;i<1000;i++){ a=i/100; b=(i-a*100)/10; c= i%10; int sum =(a*a*a)+(b*b*b)+(c*c*c); if(i==sum){ System.out.println(sum+" "+"百位是"+a+"十位是"+b+"个位是"+c); } } }
上一篇:
通过多线程提高代码的执行效率例子
下一篇:
Python科学计算(二)Pandans