import java.util.Scanner;
public class TestDemo{
public static void findNum(int n){
for (int i = 1; i <= n ; i++) { //for循环,因为每一个数字都有检验
int tmp = i ;
int count = 0 ;
while(tmp != 0){ //先求出是几位数 //不能直接用i来计算,不然走完while循环,i就变成0了,设置临时变量tmp
count++;
tmp /= 10;
}
tmp = i ; //假设i=123,我们得求出它的每一个数,即得把余数求出来,余数^位数,再让他们相加,看是否相等
int sum = 0 ;
while(tmp != 0 ) {
sum += Math.pow(tmp % 10 , count); //1、123 % 10 = 3 2、12 % 10 = 2 3、1 % 10 = 1
tmp /= 10 ; //1、123 / 10 = 12 2、12 / 10 = 1 3、1 / 10 = 0
}
if(sum == i){
System.out.println(i);
}
}
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入:");
int n = scanner.nextInt();
findNum(n);
}
}
Java:求出1~999999之间的所有“水仙花数”并输出
最新推荐文章于 2023-05-03 15:50:11 发布