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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 魔心邪 中级黑马   /  2015-5-2 01:07  /  962 人查看  /  18 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

class ShuiXianHua
{
        public static void main(String[] args)
        {
                for (int x=1;x<=9 ;x++ )
                {
                        for (int y=0;y<=9 ;y++ )
                        {
                                for (int z=0;z<=9 ;z++ )
                                {
                                        int sum=x*x*x+y*y*y+z*z*z;
                                        int        count=x*100+y*10+z;
                                       
                                        if (sum==count)
                                        {
                                                System.out.println(count);
                                        }
                                }
                        }
                }
               
        }
}

18 个回复

倒序浏览
鼓励有新思路的同学
回复 使用道具 举报
啊哦。这么做是可以的。我就是在思考怎么才能更简单一点。优化。
回复 使用道具 举报
1017161726 发表于 2015-5-2 12:29
啊哦。这么做是可以的。我就是在思考怎么才能更简单一点。优化。

简单的做法,个人认为还是拆分三位数的个位、十位、百位,然后去判断。楼主的这个方式也能实现,不过貌似效率有点低吧!个人看法!
回复 使用道具 举报
好  顶一个
回复 使用道具 举报
学习了,自己还需多多思考
回复 使用道具 举报
黄冬 发表于 2015-5-2 12:44
简单的做法,个人认为还是拆分三位数的个位、十位、百位,然后去判断。楼主的这个方式也能实现,不过貌似 ...

如果是把一个整数,拆分成三个数字,再去判断。
和直接用三个数字判断,再合成整数。
应该还是直接用数字判断简单一点。这个可以用求时间差的方法验证一下。
而且这样写的代码量少一点。只有一个三层循环而已。
回复 使用道具 举报
赞赞赞赞
回复 使用道具 举报
学习了。。。
回复 使用道具 举报
弱弱的问一句,水仙花是什么鬼
回复 使用道具 举报
水仙花是什么?
回复 使用道具 举报
如果是再加个几位数呢?你不会再嵌套用5个for来弄吧(PS:水仙花是三个数,但是很多题目可以出到更多位,只要满足条件即可)
回复 使用道具 举报
3层循环,效率低下
回复 使用道具 举报
有思路很重要,上层都是从底层爬上去的
回复 使用道具 举报
思路不错!有创新性!
回复 使用道具 举报
lz的思路用来解确定位数的水仙花数当然是可以的。但如果要求把代码封装为函数,给定参数n,求1-n之间的水仙花数,lz的思路就行不通了。而逐个分解出各位数的做法仍然可以满足求1-n之间的水仙花数的需求
回复 使用道具 举报
效果一样,感觉还复杂一些。
回复 使用道具 举报
用了3层循环也可以实现
回复 使用道具 举报
很不错 有想法。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马