/* 题目: * 打印出所有的 " 水仙花数 ",所谓 " 水仙花数 "是指一个三位数,其各位数字立方和 等于该数本身。 例如: 153 是一个 " 水仙花数 "

本文介绍了一种使用Java编程语言查找所有三位数中水仙花数的方法。水仙花数定义为一个三位数,其各位数字立方和等于该数本身。通过遍历100至999之间的所有整数并检查每个数是否满足条件,实现了对水仙花数的精确识别。
package Practice;
public class Task_3 {
/*	题目:
 * 打印出所有的	" 水仙花数  ",所谓  " 水仙花数  "是指一个三位数,其各位数字立方和	
	等于该数本身。
	例如:	
	153 是一个  " 水仙花数   ",因为  153=1 的三次方+  5 的三次方+3 的
	三次方。*/
	public static void main(String[] args) {
		for(int i = 100;i <= 999;i++){
			int g = i%10;
			int s = i/10%10;
			int b = i/100;
			
			if(Math.pow(g, 3)+Math.pow(s, 3)+Math.pow(b, 3) == i)
				System.out.println(i+"是水仙花数");
			
		}
	}

}

## 题目重述 输所有的“水仙花”,其是一个3,且各位数字立方等于本身。例如:$153 = 1^3 + 5^3 + 3^3$。 ## 详解 要找所有三位数中满足“每位数字立方等于本身”的三位数范围是 $100 \leq n \leq 999$。对每个分解百位、十位个位,计算立方并判断是否等于。 ## 给答案(带注释的代码块) ```c #include <stdio.h> int main() { int i, ge, shi, bai; printf("水仙花有:"); // 遍历所有三位数 for (i = 100; i <= 999; i++) { ge = i % 10; // 获取个位 shi = (i / 10) % 10; // 获取十位 bai = i / 100; // 获取百位 // 判断各位数字立方是否等于 if (ge * ge * ge + shi * shi * shi + bai * bai * bai == i) { printf("%d ", i); } } printf("\n"); return 0; } ``` --- ## 代码解析 - **数字分离**:利用整除取模操作分解每一位数字: - 个位:`i % 10` - 十位:`(i / 10) % 10` - 百位:`i / 100` - **立方计算**:直接用三次乘法代替幂函,避免引入 `<math.h>`。 - **条件判断**:使用 `if` 判断立方是否等于,若是则输。 运行结果为:`153 371 407` > 注意:常见的水仙花共4个,但严格在三位数范围内只有4个中的部分满足(实际为153371、407),注意验证逻辑正确性。 --- ### 知识点 - **取模与整除分解数字**:通过 `/` `%` 分离整的各个位。 - **循环遍历枚举**:使用 `for` 循环穷举所有可能解。 - **条件判断匹配**:使用 `if` 判断值关系,筛选符合特征的
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值