- class Proble3
- {
- public static int[] getNums(Integer num)
- {
- int[] arr=new int[num.toString().length()];
- for(int i=num.toString().length()-1;i>=0;i--)
- {
- arr[i]=num%10;//1634
- num/=10;
- }
- return arr;
- }
- public static void main(String[] args)
- {
- Function(10000000);//获取int范围内的水仙数;
- }
- public static void Function(Integer num)
- {
- int[] arr=new int[num.toString().length()];
- int sum=0;
- for(Integer i=1;i<num;i++)
- {
- for(int j=0;j<i.toString().length();j++)
- {
- arr=getNums(i);
- int temp=1;
- for(int k=0;k<i.toString().length();k++)//使num每个位上的数乘以他的几次幂;
- temp*=arr[j];
- sum+=temp;
- }
- if(sum==i)
- System.out.println(sum);
- sum=0;
- }
- }
- }
复制代码 这是之前做的,可以获取任何没有超过类型范围的水仙数的程序.你可以参考下. |