输出三位水仙花数
时间: 2025-06-22 14:06:51 浏览: 10
### 三位水仙花数的代码实现
#### Python 实现
以下是一个完整的 Python 脚本,用于找出并打印所有的三位水仙花数:
```python
for num in range(100, 1000): # 遍历所有三位数
gw = num % 10 # 计算个位数
sw = (num // 10) % 10 # 计算十位数
bw = num // 100 # 计算百位数
if bw**3 + sw**3 + gw**3 == num: # 判断是否满足水仙花数条件
print(num, "是水仙花数") # 打印结果[^1]
```
这段程序通过遍历从 100 至 999 的所有三位数,并逐一提取它们的百位、十位和个位数字。随后计算这些数字各自的三次幂之和并与原数比较,若相等则输出该数为水仙花数。
---
#### Java 实现
下面是基于 Java 编程语言的一种解决方案:
```java
public class NarcissisticNumber {
public static void main(String[] args) {
for (int i = 100; i < 1000; i++) { // 循环范围限定于三位数之间
int h = i / 100; // 获取百位上的数字
int t = (i / 10) % 10; // 获取十位上的数字
int s = i % 10; // 获取个位上的数字
if (Math.pow(h, 3) + Math.pow(t, 3) + Math.pow(s, 3) == i) { // 检查是否符合水仙花数定义
System.out.println(i + " 是水仙花数"); // 符合条件时打印出来[^3]
}
}
}
}
```
在此版本中,我们同样采用循环机制来逐一遍历可能成为候选者的每一个三位正整数;接着运用除法与取模运算分离出各个位置上的具体数值,最后借助 `Math.pow()` 函数完成立方运算以便验证当前考察对象是否确实属于所谓的“水仙花”。
---
#### C++ 实现
下面展示了一个标准 C++ 方法用来检测哪些三位数具备所谓‘自恋’属性——也就是常说的水仙花性质:
```cpp
#include <iostream>
using namespace std;
int main(){
for(int n=100;n<1000;n++){ // 只考虑三个数量级内的自然数序列
int ones=n%10; // 提取出单位部分
int tens=(n/10)%10; // 十进制下的第二层分解获得十位成分
int hundreds=n/100; // 百位直接由最高阶商给出
if((ones*ones*ones)+(tens*tens*tens)+(hundreds*hundreds*hundreds)==n){
cout<<n<<" 是水仙花数"<<endl; // 当发现匹配情况立即报告给终端用户[^4]
}
}
return 0;
}
```
此段源码遵循先前讨论过的算法框架构建而成,特别注意到了数据类型的选取以及边界值设定等问题,从而确保了最终得出结论的有效性和准确性。
---
### 结论
无论选用哪种主流高级编程语言(Python、Java 或者 C++),核心思路都是相同的:先确定目标区间内待测样本集合,再依次解析各组成单元贡献度量指标直至达成预定筛选准则为止。
阅读全文
相关推荐


















