2019独角兽企业重金招聘Python工程师标准>>>
import java.util.Scanner;
public class Narcissus {
public static void main(String[] args) {
Scanner input =new Scanner(System.in);
System.out.println("请输入要计算的水仙花数的位数是(3-24):");
int num=input.nextInt();//位数
if(num<3||num>24){
System.out.println("你输入的数据范围有误");
return;
}
StringBuffer begins=new StringBuffer("100"); //起始基数
StringBuffer ends=new StringBuffer("999");
/**
* 根据位数 算出起始值 和 结束基数
*/
for(int i=0;i<num-3;i++){
begins.append("0");
ends.append("9");
}
int begin=Integer.parseInt(begins.toString());
int end=Integer.parseInt(ends.toString());
for(int i=begin;i<=end;i++){
String arr[] =Integer.toString(i).split("");
int result=0;
int temp;
for(int n=1;n<arr.length;n++){//取出每一位数
temp=1;
for(int j=1;j<arr.length;j++){//取得一位数,做多次乘积
temp=temp*Integer.parseInt(arr[n]);
}
result+=temp;
}
if(result==i){
System.out.println(i);
}
}
}
}