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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 钟林杰 中级黑马   /  2013-4-11 22:47  /  1529 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

让我们的技术起飞吧
大家一起来做程序题,这是在自考书的一道程序设计题,让我们来对比一下谁写的代码更简洁更高效吧!
这些简单的基础题可不能在网上找答案哦,学习最重要的还是靠自己多动脑,记得在你的代码上加上应有的注释,代码记得编写规范哦,养成良好的编程习惯。
题目:
水仙花数是一个3为数字的整数,它等于每个数字的三次方之和。例如153是一个水仙花数,153=1^3+5^3+3^3.是编写一个程序,求1000以内的水仙花数。
(你回答之后就能看到我的答案了哦!)
int a,b,c;
                for(int i=100;i<1000;i++)        //由于水仙花数是一个3位数,所以可以直接从100加到999就行了
                {
                        a = i / 100;                //取百位的那个数
                        b = i % 100 / 10;        //取十位的那个数
                        c = i % 10;                        //取个位的那个数
                        if(i==(a*a*a+b*b*b+c*c*c))                        //判断i是不是水仙花数
                        {
                                System.out.println(i+" = "+a+" + "+b+" + "+c);
                        }
                }

评分

参与人数 1技术分 +1 收起 理由
张熙韬 + 1 鼓励一个!

查看全部评分

7 个回复

倒序浏览
3层循坏搞定
回复 使用道具 举报
  1. class HuaData
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 //用于记录水仙花数的个数
  6.                 int count = 0;
  7.                 for(int i=110;i<1000;i++)
  8.                 {
  9.                         //分别获取每个数的百位、十位、个位
  10.                         int a = i/100;
  11.                         int b = (i/10)%10;
  12.                         int c = i%10;
  13.                         //打印输出水仙花数
  14.                         if(i == a*a*a+b*b*b+c*c*c)
  15.                         {
  16.                                 System.out.print(i+" ");
  17.                                 count++;
  18.                         }
  19.                 }
  20.                 //打印输出水仙花数的个数
  21.                 System.out.println("count="+count);
  22.         }
  23. }

  24. 献丑来啦,呵呵!
复制代码
回复 使用道具 举报
李永康 发表于 2013-4-11 23:14
3层循坏搞定

不需要三层循环也能搞定。你别干说啊,把你写的代码摆出来看看谁的效率高和谁的简洁嘛!
回复 使用道具 举报
通行天下 发表于 2013-4-11 23:16

你写的比我好,我居然把a,b,c三个变量给定义到外面去了,根本就没那必要。不过你写例题了哦,哈哈,我要求的不是个数,而是分别是什么数。下次记得细心点哦!:lol
回复 使用道具 举报
看看和我想法差多少
回复 使用道具 举报
我开始跟你想法是一样的。结果进了一个死圈子,就是 如果告诉你不是1000以内,而是告诉你说,这个数是n。我直接就不知道怎么做了。。
扣脑袋扣了半天。。。。
回复 使用道具 举报
易杰 中级黑马 2013-4-13 00:51:33
8#
没看明白。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马