小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。
问题描述
153是一个非常特殊的数,它等于它的每位数字的立方和,即153=111+555+333。编程求所有满足这种条件的三位十进制数。
输出格式
按从小到大的顺序输出满足条件的三位十进制数,每个数占一行。
注释:要实现其他位数的水仙花数,把下面a,b 初始值换成n位数即可
参考代码
public class Main {
public static void main(String[] args) {
int a=100;
int b=1000;
for(int i=a;i<b;i++){
if(f(i)==1){
System.out.println(i);
}
}
}
public static int f(int n){
int t,temp,sum=0;
int num=n;
for(int i=0;i<3;i++){
temp=num%10;
sum+=temp*temp*temp;
num=(num-temp)/10;
}
t=sum;
if(t==n){
return 1;
}else{
return -1;}
}
}