理解水仙花数(看这一篇就够了)

什么是水仙花数

水仙花数是指一个 3 位数,它的每个位上的数字的
3次幂之和等于它本身。(例如:1^3 + 5^3 + 3^3 = 153)。

算法分析

1.水仙花数是一个三位数,所以它的取值范围是100 ~ 999,所以我们需要循环遍历100~999的数.
2.水仙花数每个位上的数字的3次幂之和等于它本身,因此我们想要判断一个三位数是不是水仙花数需要把它的三个位数分别取出.

百位: 拿678为例
因为java中两个int类型做除法,得到的结果还是int类型的值
所以直接将678除以100得到百位数
个位:直接将678%10=8
十位:将678除以10得到67,再将67%10=7

3.判断取出的三个位数的 3次幂之和是否等于它本身,是则输出.

代码

public static void main(String[] args) {
		int gw;//个
		int sw;//十
		int bw;//百
		int sxh;//水仙花数
		for ( sxh = 100; sxh < 1000; sxh++) {	
			bw=sxh/100;
			sw=sxh/10%10;
			gw=sxh%10;
			if (sxh==bw*bw*bw+sw*sw*sw+gw*gw*gw) {
				System.out.println(sxh);
			}
		}	
	}
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值