java水仙花详解_水仙花问题 -- Java描述

水仙花问题 -- Java描述

题目:

编程求出 100~999 的所有的水仙花数(所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数本身)。

举例:

153是“水仙花数”,因为:153 = 1^3 + 5^3 + 3^3。

思路:

题目中说求出 100~999 的所有“水仙花数”,其实如果没有给出 100~999 的限定,“水仙花数”还是求这个范围,因为水仙花数要满足“三位数”,所以就只有 100~999 的范围了。

所以我们可以把给出的三位数的个位、十位、百位分别拆分,并求其立方和(设为 n),若 n 与给出的三位数相等, 三位数为“水仙花数”,反之,则不是。

代码如下:

public class Test {

public static void main(String[] args) {

for (int n = 100; n < 1000; n++) { // 整数的取值范围

int i = n / 100; // 取得百位数

int j = n / 10 % 10; // 取得十位数,也可以写成 int j = (n-i*100)/10;

int k = n % 10; // 取得个位数, 也可以写成 int k = n-i*100-j*10

if (n == i*i*i + j*j*j + k*k*k) { //各位的立方和是否和原数n相等,相等则打印水仙花数

System.out.println("水仙花数为" + n);

}

}

}

}

输出结果如下:

e12e7b7d2994?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

image.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值