水仙花数
public class NewNarcissus { /* * 水仙花数是指一个 n 位数 ( n>=3 ),它的每个位上的数字的 n 次幂之和等于它本身。(例如:1^3 + 5^3 + 3^3 = 153) 1*1*1 + 5*5*5 + 3*3*3 = 153 * 三位的水仙花数共有4个,分别为:153、370、371、407 */ public static void main(String[] args) { int start = 10; int finish = 100000; int max = String.valueOf(finish).length(); int[] a = new int [max]; for(int i=start;i<finish;i++) { String str = i+""; for(int j=1;j<9;j++) { int sum = 0; for(int z=1;z<=max;z++) { int p = z-1; if(str.length()>=z) { a[p] = Integer.valueOf(str.substring(str.length()-z,str.length()-p)); } sum+=(int) Math.pow(a[p], j); } if(sum==i) { System.out.println(i); } } } } }
写得不对!