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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

蓝七

中级黑马

  • 黑马币:19

  • 帖子:72

  • 精华:0

© 蓝七 中级黑马   /  2015-4-29 21:03  /  560 人查看  /  21 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

class N仙花数
{
        /*
        水仙花数并不陌生,满足这样的3位数,153=1*1*1+5*5*5+3*3*3。有几个呢?4个,153,370,371,407。
        那有没有这样的,abcd=a^4+b^4+c^4+d^4?   abcde=a^5+b^5+……
        请注意,3位数的3次幂,5位数的是5次幂。我不会告诉你92727=9^5+2^5+7^5+2^5+7^5 的。
        */
        public static void main(String[] args)
        {       
                for (int x=100;x<10000000 ;x++ )//遍历x的范围
                {
                        int count=1;
                        for (int y=x;y/10!=0 ;y=y/10 )//用来判断数据是几位数,用count存储。
                        {
                                count++;
                        }
                        int num=x;
                        double result=0;               
                        for (;num/10!=0 ;num=num/10 )//遍历数据,从个位到最高减一位。
                        {       
                                result=result+Math.pow((num%10),count);//累加各个位上count次幂之和,不包括最高位。
                        }
                        result=result+Math.pow((num%10),count);//加上最高位的。                               
                        if (x==result)//判断是否符合N仙花数规则,符合则输出当前数据的位数和数据。
                        {
                                System.out.print(count+"仙花数"+"\t");
                                System.out.println(x+"\t");                               
                        }
                }
        }
}//为了2个技术分我也是拼了。。。

21 个回复

倒序浏览
呵呵呵,抢地主了!动作真快

点评

加倍!  发表于 2015-4-29 21:09
回复 使用道具 举报
不错不错! 搞了一下午 还可以把!

点评

共同努力!拼了个命的  发表于 2015-4-29 21:23
回复 使用道具 举报
今天刚学到,好厉害好厉害

点评

是啊,研究了一下午,真心不容易啊,多谢给个夸奖哈  发表于 2015-4-29 21:25
回复 使用道具 举报

今天刚学到,好厉害好厉害,向你学习这种研究的精神!!

点评

3ksO(∩_∩)O  发表于 2015-4-30 18:07
回复 使用道具 举报
好厉害好厉害,向你学习这种研究的精神!
回复 使用道具 举报
andre 中级黑马 2015-4-29 21:39:17
7#
今天视频看到这里了

点评

仔细看哦  发表于 2015-4-30 18:08
回复 使用道具 举报
刚学过,看楼主貌似忘写思路了

点评

请认真看,看和学的有什么不同!新手,没养成写思路的习惯呢,以后注意,谢谢提醒  发表于 2015-4-30 18:10
回复 使用道具 举报
才发觉原来不止立方的可以啊~

点评

给力!  发表于 2015-4-30 18:12
回复 使用道具 举报
思维拓展能力好强啊

点评

谢谢夸奖,3/83的概率!;-)  发表于 2015-4-30 18:14
回复 使用道具 举报
最简单的 水仙花 是这样的

  1. /*
  2.         打印出所有的"水仙花数"。
  3.         所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:
  4.         153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。
  5.        

  6.         思路:
  7.                 A:"水仙花数"是指一个三位数,告诉我们范围了。100-999
  8.                 B:153=1的三次方+5的三次方+3的三次方通过这个例子
  9.                         一个数据的个位立方+十位立方+百位立方=该数据
  10.                 C:如何获取个位,十位,百位的数据?
  11.                         对于任意的数据x。获取个位怎么办呢?

  12.                         153:

  13.                         个:153%10 = 3
  14.                         十:153/10%10 = 5
  15.                         百:153/10/10%10 = 1
  16.                         千:x/10/10/10%10 -- .........
  17. */
  18. class FlowerDemo
  19. {
  20.         public static void main(String[] args)
  21.         {
  22.                 for(int x=100; x<1000; x++)
  23.                 {
  24.                         //x就是任意数据

  25.                         int ge = x%10;
  26.                         int shi = x/10%10;
  27.                         int bai = x/10/10%10;

  28.                         if((ge*ge*ge+shi*shi*shi+bai*bai*bai)==x)
  29.                         {
  30.                                 System.out.println(x);
  31.                         }
  32.                 }
  33.         }
  34. }
复制代码




同理:

问:        请输出满足这样条件的五位数。
                个位=万位
                十位=千位
                个位+十位+千位+万位=百位




  1. class Demo13
  2. {
  3.         public static void main(String [] args)
  4.         {
  5.                 for (int x=10000;x<=99999 ;x++ )
  6.                 {
  7.                         int a=x%10;
  8.                         int b=x/10%10;
  9.                         int c=x/10/10%10;
  10.                         int d=x/10/10/10%10;
  11.                         int e=x/10/10/10/10%10;
  12.                         //int f=
  13.                         if (a==e && b==d && a+b+d+e==c)
  14.                         {
  15.                                 System.out.println(x);
  16.                         }
  17.                 }
  18.         }
  19. }
复制代码



点评

谢谢。。。刷屏  发表于 2015-4-30 18:15
回复 使用道具 举报
xfliyy 来自手机 中级黑马 2015-4-29 22:37:38
12#
学习了:L

点评

。。。,表情不对  发表于 2015-4-30 18:16
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马