使用函数输出水仙花数
时间: 2023-09-24 13:02:24 浏览: 65
水仙花数指的是一个n位数 (n≥3),它的每个位上的数字的n次幂之和等于它本身。例如:1³ + 5³ + 3³ = 153。
以下是使用函数输出水仙花数的Python代码:
```python
def get_narcissistic_number(n):
for i in range(10**(n-1), 10**n):
digits = [int(d) for d in str(i)]
sum_of_powers = sum([d**n for d in digits])
if sum_of_powers == i:
print(i)
# 调用函数输出3位数的水仙花数
get_narcissistic_number(3)
```
输出结果为:
```
153
370
371
407
```
该函数接受一个参数n,表示要输出n位数的水仙花数。函数使用for循环遍历所有n位数,计算每个数各个位上数字的n次幂之和,并判断是否等于该数本身。如果是,则输出该数。
相关问题
使用函数输出水仙花数c语言pta
首先,我们需要明确水仙花数的定义:一个三位数,其各个位上的数字的立方之和等于它本身。
要使用函数输出水仙花数,我们可以按照以下步骤进行操作:
1. 首先,在程序开始的地方定义一个函数,例如名为"getNarcissisticNumber"的函数。函数的返回类型应该是void,因为我们只需要输出水仙花数而非返回具体数值。
2. 在函数内部,使用一个循环来遍历所有的三位数。
3. 在循环内部,将当前遍历到的三位数分解成个位、十位和百位的数字,分别记为a、b和c。
4. 判断如果a的三次方加上b的三次方再加上c的三次方等于当前遍历的三位数,那么就输出该水仙花数。
5. 在主程序中调用该函数进行运行。
以下是一个示例代码段:
```c
#include <stdio.h>
void getNarcissisticNumber() {
int a, b, c;
for (int i = 100; i <= 999; i++) {
a = i % 10; // 个位数字
b = (i / 10) % 10; // 十位数字
c = (i / 100) % 10; // 百位数字
if (a * a * a + b * b * b + c * c * c == i) {
printf("%d ", i);
}
}
}
int main() {
getNarcissisticNumber();
return 0;
}
```
执行以上代码,即可输出所有的水仙花数。
6-7 使用函数输出水仙花数_一:使用函数输出水仙花数
下面是使用函数输出水仙花数的 Python 代码:
```python
def is_armstrong(num):
# 计算位数
n = len(str(num))
# 计算各位数字的 n 次方和
temp = num
sum = 0
while temp > 0:
digit = temp % 10
sum += digit ** n
temp //= 10
# 判断是否为水仙花数
if num == sum:
return True
else:
return False
# 输出 100~999 中的水仙花数
for i in range(100, 1000):
if is_armstrong(i):
print(i)
```
代码解释:
1. 定义一个名为 `is_armstrong` 的函数,接收一个整数参数 `num`,判断该数是否为水仙花数,并返回布尔值。
2. 在函数中,首先计算 `num` 的位数 `n`,然后计算各位数字的 `n` 次方和。
3. 判断 `num` 是否等于 `sum`,如果是,则返回 `True`,否则返回 `False`。
4. 在主程序中,使用 `for` 循环遍历 100~999 中的每个数,判断是否为水仙花数,并输出结果。
输出结果:
```
153
370
371
407
```