Java小练习-找水仙花数
什么是水仙花数
要找水仙花数,我们首先要知道什么是水仙花数。水仙花数是指一个n位数(n>3),它的每个位上的数字的n次幂之和等于它本身。(列如:1^3 +5^3 +3^3=153)
看一下真正的水仙花,希望我们做出来的小程序也很漂亮哦~
理解了水仙花数的概念,下面开始实战训练。
题目
找出100~999之间的全部水仙花数
大家可以先根据上面的介绍结合题目,自己先尝试一下
完整过程
package test;
public class customer1{
public static void main(String args[]){
long k=999;
for(int i=100;i<=k;i++){
int a=i%10;
int b=i/10%10;
int c=i/100;
double d=Math.pow(a,3);
double e=Math.pow(b,3);
double f=Math.pow(c,3);
int g=(int)d+(int)e+(int)f;
if(g==i){
System.out.print(i+“ ”);
}
}
}
}
解题步骤
long k=999;
后面的for循环需要用到,循环到999这个数就要停止
for(int i=100;i<=k;i++){
for循环,规定初始数为100,每次循环后i加一,循环到999停止
int a=i%10;
i%10就是取i个位上的数
int b=i/10%10;
i/0%10就是取i十位上的数
int c=i/100;
i/100就是取i百位上的数
double d=Math.pow(a,3);
Math.pow()是Java.lang包中的方法(Java.lang包使用时不需要导包),该方法有两个参数,第一个参数是要进行幂次方运算的数,第二个参数幂数。该方法作用是进行幂次方运算
double e=Math.pow(b,3)
十位上的数的三次方
double f=Math.pow(c,3)
百位上的数的三次方
int g=(int)d+(int)e+(int)f;
使个位上得数得三次方与十位上的数的三次方,百位上的数的三次方次相加等于g
if(g==i){
if判断g与i的大小是否相等
System.out.print(i+" ")
如果相等,打印出i的值。print是不换行的,所以我们每打印一个i都要加一个空格也就是“ ”
结尾
这个解题步骤是比较简单基础的,如果有更加简便的程序,欢迎大家在评论区留言哦~