水仙花数java(3-24)位数输入,都可以算出水仙花数

package com.operation;


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);
}
}
}
}


你可能感兴趣的:(水仙花数java(3-24)位数输入,都可以算出水仙花数)