Java小练习-找水仙花数

什么是水仙花数

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

用java算水仙花的解析 java 求水仙花数_for循环

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

题目

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

结尾

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

用java算水仙花的解析 java 求水仙花数_for循环_02