A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 张宝 中级黑马   /  2013-3-7 21:44  /  1089 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 张宝 于 2013-3-7 22:21 编辑

求出所有的水仙花数 ???  使用    循环+条件??????

5 个回复

倒序浏览
  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. }
复制代码
这是之前做的,可以获取任何没有超过类型范围的水仙数的程序.你可以参考下.
回复 使用道具 举报
{:soso_e100:}
回复 使用道具 举报
陈圳 发表于 2013-3-7 22:04
这是之前做的,可以获取任何没有超过类型范围的水仙数的程序.你可以参考下. ...

谢谢您的回答!!哈~~~~~~~
回复 使用道具 举报
/*求出所有的水仙花数   使用    循环+条件
        水仙花数是三位数   它的特点  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);
                        }
                }

                       
        }
}
回复 使用道具 举报
黑马17期-闫东东 发表于 2013-3-7 22:22
/*求出所有的水仙花数   使用    循环+条件
        水仙花数是三位数   它的特点  153=1x1x1+5x5x5+3x3x3  */

:lol:lol:lol
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马