admin 管理员组文章数量: 1087649
java:水仙花数
问题:
水仙花数定义:
- 一定是3位数
- 每一位的立方,加起来恰好是这个数本身,比如
153=1*1*1+5*5*5+3*3*3
寻找所有的水仙花数
解题思路:
因为定义中说明值水仙花数一定是三位数,所以做一个从100到999的循环:
for(int i=100;i<1000;i++)
然后需要获取这个三位数的每一位数
拿153举例:
个位数:对10取余即可得到个位数。153/10=15……3,即得到个位:3
十位数:十位数稍微复杂一些,先除以10,消去个位,得到二位数15,再对 这个二位数取余得到个位数,15%10=1……5得到十位:5
百位数:百位数相对简单,直接除以100,就得到了百位:153/100=1
然后对拿到的三个数进行计算,然后判断是否等于这个数本身即可,关于立方,可以用Math.pow(x,3)
,也可以用x*x*x
简单粗暴
完整代码:
public class Main {public static void main(String[] args) {for (int i = 100; i < 1000; i++) {int gw = i % 10; //获得个位数int sw = (i / 10) % 10; //获得十位数int bw = i / 100; //获得百位数if (gw * gw * gw + sw * sw * sw + bw * bw * bw == i)System.out.println(i); //输出符合条件的水仙花数}}
}
本文标签: java水仙花数
版权声明:本文标题:java:水仙花数 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/b/1686650229a20364.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论