package Leetcode;
//水仙花数:当一个数的每一位数的位数次方的和等于这个数本身,就叫做水仙花数 例如:1634-> 1634==1^4+6^4+3^4+4^4
import java.util.Scanner;
public class waterFlower {
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
System.out.println("请输入一个大于200的数:");
int m=sc.nextInt();
for(int num=100;num<=m;num++){
int n=count(num);
int[] arr=number(n,num);
int res=add(n,arr);
if(res==num){
System.out.println("水仙花数:"+num);
}else{
continue;
}
}
}
//方法:求输入的数的位数
public static int count(int num){
int n=0;
while(num!=0){
num=num/10;
n++;
}
return n;
}
//方法:求各个位上的数,存入数组
public static int[] number(int n,int num){
int arr[] = new int[n] ;
for(int i=0;i<n;i++){
arr[i]=num%10;
num=num/10;
}
return arr;
}
//方法:计算是和
public static int add(int n,int[] arr){
int res=0;
for(int i=0;i<n;i++){
res+=Math.pow(arr[i],n);
}
return res;
}
}