iampigeon

Java小练习-找水仙花数

什么是水仙花数

要找水仙花数,我们首先要知道什么是水仙花数。水仙花数是指一个n位数(n>3),它的每个位上的数字的n次幂之和等于它本身。(列如:1^3 +5^3 +3^3=153)
看一下真正的水仙花,希望我们做出来的小程序也很漂亮哦~

image

理解了水仙花数的概念,下面开始实战训练。

题目

找出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都要加一个空格也就是“ ”

结尾

这个解题步骤是比较简单基础的,如果有更加简便的程序,欢迎大家在评论区留言哦~

image

posted on 2023-03-05 12:26  阿苏勒的吕归尘  阅读(72)  评论(0编辑  收藏  举报

导航