打印100~1000的水仙花数:
水仙花数:指一个三位数,它的每个位上的数字的3次幂之和等于它本身。 (例如:1的3次方+5的3次方+3的3次方=153)
- 解题思路:逆向思维
求证:153是不是水仙花数呢
百位:
int x =153/100;
x=x*x*x;
十位:
int y=153/10 % 10;
y=y*y*y;
个位:
int z =153 % 10;
z=z*z*z;
for(x+y+z==153){
System.out.println(num +" 是水仙花数" );
}else{
System.out.println(num +"不是水仙花数" );
}
- 注意:153是一个固定的数值,我们需要换一个变量。把153替换成 i 。
- 代码可写成
public class LaLa {
public static void main(String[] agrs) {
for(int i =100; i<=1000;i++){
int x = i / 100;//百位
x=x*x*x;
int y = i / 10 % 10;//个位
y=y*y*y;
int z = i % 10;//十位
z=z*z*z;
if(x+y+z==i)
{
System.out.println( i + " 是水仙花数" );
}
}
}
}
- 升级版代码
public class LaLa {
public static void main(String[] agrs) {
for(int i =100; i<=1000;i++){
int x = i / 100;//百位
int y = i / 10 % 10;//个位
int z = i % 10;//十位
if(Math.pow(x,3) +Math.pow(y,3) + Math.pow(z,3)==i)
{
System.out.println( i + " 是水仙花数" );
}
}
}
- 结果
153 是水仙花数
370 是水仙花数
371 是水仙花数
407 是水仙花数
1000 是水仙花数
希望能帮助到大家啦~~~