水仙花数——java

来源:互联网 发布:nba直播数据统计 编辑:程序博客网 时间:2024/05/21 09:03

水仙花数是指一个 n 位数 ( n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身。(例如:1^3  + 5^3+ 3^3 = 153)

package www.wtt.Test.acm;
import java.text.NumberFormat;
/***
 * 输入一个多位数,判断其是否为水仙花数及其类似的数
 */
import java.util.Scanner;

public class ShuiXianHua {
 public static void main(String[] args) {
  for(int k=1;;k++){
  System.out.println("请输入一个正整数:最大到21亿,输入0停止输入");
  Scanner s=new Scanner(System.in);//输入 
  String strnum=s.next();//将输入的值赋给String
  if(strnum.equals("0")){
   System.out.println("循环停止");
   break;
  }
  else{
  int num=Integer.parseInt(strnum);//将String给int
  if(num<0){
   System.out.println("请输入正整数!");
   main(args);
   }else{
  int len=strnum.length();//获取输入的长度
  int a[]=new int[len];//定义数组
  long total=0L;//计算立方和
  for(int i=0;i<len;i++){
   a[i]=Integer.parseInt(String.valueOf(strnum.charAt(i)));//将String转换为int,存储在数组中
   total+=Math.pow(a[i], len);//计算立方和
   
  }
  if(total==num){//如果立方和与输入的数字相同
   System.out.println("yes");
  }
  }
 }
 }
}
}



 

 

1 0