黑马程序员技术交流社区

标题: 水仙花数 [打印本页]

作者: 张宝    时间: 2013-3-7 21:44
标题: 水仙花数
本帖最后由 张宝 于 2013-3-7 22:21 编辑

求出所有的水仙花数 ???  使用    循环+条件??????
作者: 陈圳    时间: 2013-3-7 22:04
  1. class Proble3
  2. {
  3.         public static int[] getNums(Integer num)
  4.         {
  5.                 int[] arr=new int[num.toString().length()];
  6.                 for(int i=num.toString().length()-1;i>=0;i--)
  7.                 {
  8.                         arr[i]=num%10;//1634
  9.                         num/=10;
  10.                 }
  11.                 return arr;
  12.         }
  13.         public static void main(String[] args)
  14.         {
  15.                 Function(10000000);//获取int范围内的水仙数;
  16.         }
  17.         public static void Function(Integer num)
  18.         {
  19.                 int[] arr=new int[num.toString().length()];
  20.                 int sum=0;
  21.                 for(Integer i=1;i<num;i++)
  22.                 {
  23.                         for(int j=0;j<i.toString().length();j++)
  24.                         {
  25.                                 arr=getNums(i);
  26.                                 int temp=1;
  27.                                 for(int k=0;k<i.toString().length();k++)//使num每个位上的数乘以他的几次幂;
  28.                                         temp*=arr[j];
  29.                                 sum+=temp;
  30.                         }
  31.                         if(sum==i)
  32.                                 System.out.println(sum);
  33.                         sum=0;
  34.                 }
  35.         }
  36. }
复制代码
这是之前做的,可以获取任何没有超过类型范围的水仙数的程序.你可以参考下.
作者: 小丑的媳妇2    时间: 2013-3-7 22:08
{:soso_e100:}
作者: 张宝    时间: 2013-3-7 22:20
陈圳 发表于 2013-3-7 22:04
这是之前做的,可以获取任何没有超过类型范围的水仙数的程序.你可以参考下. ...

谢谢您的回答!!哈~~~~~~~
作者: 黑马17期-闫东东    时间: 2013-3-7 22:22
/*求出所有的水仙花数   使用    循环+条件
        水仙花数是三位数   它的特点  153=1x1x1+5x5x5+3x3x3  */


class Test2
{
        public static void main(String[] args)
        {
                for(int i=100; i<1000;i++)
                {       
                        int a1=i/100;
                        int a2=i/10%10;
                        int a3=i%10;
                        if(i==a1*a1*a1+a2*a2*a2+a3*a3*a3)
                        {
                                System.out.println("水仙花数:"+i);
                        }
                }

                       
        }
}

作者: 张宝    时间: 2013-3-7 23:28
黑马17期-闫东东 发表于 2013-3-7 22:22
/*求出所有的水仙花数   使用    循环+条件
        水仙花数是三位数   它的特点  153=1x1x1+5x5x5+3x3x3  */

:lol:lol:lol




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2