“水仙花数”是指一个3位数,其各位数字立方和等于该数本身。例如,153是一个水仙花数。输出所有水仙花数。 输入格式: 没有输入 输出格式: 一行一个水仙花数
时间: 2024-05-10 21:18:27 浏览: 84
好的,以下是 Python 代码实现:
```python
for i in range(100, 1000):
a = i // 100 # 百位数
b = i // 10 % 10 # 十位数
c = i % 10 # 个位数
if i == a**3 + b**3 + c**3:
print(i)
```
输出结果为:
```
153
370
371
407
```
这四个数就是所有的水仙花数。
相关问题
输出所有的“水仙花数”所谓“水仙花数”是指一个3位数其各位数字立方和等于该数本身。例如,153 是水仙花数因为15313十53+33。C语言
解答如下:
#include <stdio.h>
int main() {
int i, a, b, c;
for (i = 100; i < 1000; i++) {
a = i / 100;
b = (i / 10) % 10;
c = i % 10;
if (a * a * a + b * b * b + c * c * c == i) {
printf("%d\n", i);
}
}
return 0;
}
输出:
153
370
371
407
以上是所有的水仙花数。
用c语言水仙花数是指一个3位数,其各位数字立方和等于该数本身。例如,153是一个水仙花数,因为153=111+555+333。
水仙花数( Narcissistic Number 或者 Pluperfect Digital Invariant)是指那些每一位数字的三次幂之和等于原数本身的正整数。在C语言中,判断一个数是否为水仙花数通常会通过循环结构计算每个位数的立方,然后将它们相加并比较结果。下面是一个简单的C程序示例,用于检查一个三位数是否为水仙花数:
```c
#include <stdio.h>
#include <stdbool.h>
bool isNarcissistic(int num) {
int digits[4], sum = 0;
// 将数字分解为三个位
if (num < 100 || num > 999) return false;
while (num > 0) {
digits[3] = num % 10; // 取最后一位
num /= 10;
for (int i = 0; i < 3 && digits[i] != 0; i++) { // 计算立方并累加
sum += digits[i] * digits[i] * digits[i];
}
}
// 如果所有的位立方和等于原数,则返回true
return sum == num;
}
int main() {
int input;
printf("请输入一个三位数: ");
scanf("%d", &input);
if (isNarcissistic(input)) {
printf("%d 是一个水仙花数.\n", input);
} else {
printf("%d 不是水仙花数.\n", input);
}
return 0;
}
```
阅读全文