【程序3】题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。1.程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。
package test;
public class test {
public static boolean daffodil(int num) {
boolean flag = false;
int temp = num;
int count = 0;
int sum = 0;
while(true)
{
if(temp / 10 < 1)
{
count++;
break;
}
temp = temp / 10;
count++;
}
temp = num;
for(int i=0; i
{
sum = sum + (temp % 10)*(temp % 10)*(temp % 10);
temp = temp / 10;
}
if(sum == num)
flag = true;
return flag;
}
public static void main(String[] args) {
long a = System.currentTimeMillis();
for(int i = 101; i<= 999; i++)
{
if(daffodil(i))
System.out.println("The daffodil number : "+i);
}
System.out.println(System.currentTimeMillis() - a);
}
}