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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 郑先明   /  2013-6-28 15:16  /  3377 人查看  /  25 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

秩宇 发表于 2013-6-28 16:47
写代码要细心啊,取十位的时候算法不对 b =m/10%10;
而且你这个是只求三位数的水仙花数,m的范围不应该小 ...

好吧 脑袋不是很好使...我看1000没输出 于是就加了个0...没改回来...还有abc的算法我完全照搬答案的..所以有没错我不知道..
回复 使用道具 举报
秩宇 发表于 2013-6-28 16:47
写代码要细心啊,取十位的时候算法不对 b =m/10%10;
而且你这个是只求三位数的水仙花数,m的范围不应该小 ...

不对啊...算法没错啊.我刚才算了下,没错...
回复 使用道具 举报
oxf974025918 发表于 2013-6-28 16:25
如果不改返回类型就要在方法里面写上return m;再在主函数main里面System.out.println(ShuiXiam.show());还 ...

嗯对  静态函数直接用类名调用就可以了!但是按照你说的 在if语句里头加了return m;然后在主函数加输出语句,提示在18行缺少返回值,返回值类型是int
回复 使用道具 举报
秩宇 发表于 2013-6-28 16:47
写代码要细心啊,取十位的时候算法不对 b =m/10%10;
而且你这个是只求三位数的水仙花数,m的范围不应该小 ...

取百位的算法错了  取十位的没错
回复 使用道具 举报
郑先明 发表于 2013-6-28 17:35
取百位的算法错了  取十位的没错

哦 口误 改了应该可以了吧? 我试了可以
  1. public class Test2 {

  2.     public static void main(String [] args)
  3.     {
  4.         ShuiXian s = new ShuiXian();
  5.         s.show();

  6.     }

  7.     static class ShuiXian
  8.     {
  9.         static int a, b, c;
  10.         public static void show()
  11.         {
  12.             for(int m=101;m<1000;m++)
  13.             {
  14.                 a =m/100;
  15.                 b =m/10%10;
  16.                 c =m%10;
  17.                // System.out.println(a+" "+ b +" "+c);
  18.                 if (a*100+b*10+c==m && a*a*a + b*b*b + c*c*c==m)
  19.                 {
  20.                     System.out.println(m+"是一个水仙花数");
  21.                 }
  22.             }
  23.         }
  24.     }
  25. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
孙百鑫 + 1 赞一个!

查看全部评分

回复 使用道具 举报
秩宇 发表于 2013-6-28 19:57
哦 口误 改了应该可以了吧? 我试了可以

OK了!!原来练习的原答案都是错的...不过数学我真的很烂...对于数学题很无奈!
回复 使用道具 举报
12
您需要登录后才可以回帖 登录 | 加入黑马