输出1000以内的“水仙花数”。所谓水仙花数是指1个3位十进制数,其各位数字的立方和恰好等于该数本身。例如,153=13+53+33。python
时间: 2024-03-09 12:51:34 浏览: 171
好的,以下是Python的代码实现:
```python
for i in range(100, 1000):
s = str(i)
if int(s[0])**3 + int(s[1])**3 + int(s[2])**3 == i:
print(i)
```
输出结果为:
```
153
370
371
407
```
这些数字就是1000以内的水仙花数。
相关问题
用C语言编辑程序:输出1到n以内的水仙花数(n的十进制位数不超过四位)
在C语言中,要编写一个程序找出1到n范围内的所有水仙花数,你可以创建一个函数来检查数字是否满足条件。水仙花数是指一个三位数,其各位数字立方之和等于该数字本身。例如,153就是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。
以下是一个简单的C程序示例,用于查找并打印1到n之间的水仙花数:
```c
#include <stdio.h>
// 函数定义,判断一个数字是否为水仙花数
int isArmstrong(int num) {
int digits[4], sum = 0;
if (num <= 0 || num >= 1000) return 0; // 只考虑0-999之间的数
// 将数字分解成各个位
while (num > 0) {
digits[3] = num % 10;
num /= 10;
sum += digits[3] * digits[3] * digits[3];
}
// 检查是否所有位相加等于原数
return sum == num;
}
// 主函数,遍历1到n并检查每个数
void findArmstrongNumbers(int n) {
for (int i = 100; i <= n; ++i) {
if (isArmstrong(i)) {
printf("%d ", i); // 输出找到的水仙花数
}
}
}
int main() {
int n;
printf("请输入一个整数n (0-999): ");
scanf("%d", &n);
findArmstrongNumbers(n);
return 0;
}
```
当你运行这个程序,并输入一个值n,它将输出从1到n的所有水仙花数。注意,由于这里只处理了最多四位的水仙花数,所以对于更大的n值,可能需要调整`findArmstrongNumbers`函数中的边界条件。
阅读全文