天天看点

用java 计算mic,java每日小算法(3)

【程序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);

}

}