水仙花数(函数专题)
时间: 2023-12-25 14:29:26 浏览: 79
水仙花数是指一个三位数,它的各位数字的立方和等于其本身。现在要求输出所有在m和n范围内的水仙花数。
以下是一个判断一个数是否为水仙花数的函数示例:
```python
def narcissus(n):
# 将n转换为字符串,以便逐位获取数字
num_str = str(n)
# 获取每位数字的立方和
sum = 0
for digit in num_str:
sum += int(digit) ** 3
# 判断是否为水仙花数
if sum == n:
return 1
else:
return 0
```
你可以使用这个函数来输出在m和n范围内的水仙花数:
```python
m = 100
n = 999
for num in range(m, n+1):
if narcissus(num):
print(num)
```
这段代码会输出在100到999范围内的所有水仙花数。
相关问题
水仙花数函数专题C语言
水仙花数函数(又称 Narcissistic Number 或 Pluperfect Digital Invariant)是指一个三位数(在十进制下),其各位数字立方之和等于该数本身。例如,153是一个水仙花数,因为 1^3 + 5^3 + 3^3 = 153。
在C语言中编写一个检查水仙花数的函数,可以按照以下步骤:
```c
#include <stdio.h>
// 函数声明
int is_narcissistic(int num);
int main() {
int input;
printf("请输入一个三位数:");
scanf("%d", &input);
if (is_narcissistic(input)) {
printf("%d 是一个水仙花数。\n", input);
} else {
printf("%d 不是水仙花数。\n", input);
}
return 0;
}
// 实现水仙花数检查函数
int is_narcissistic(int num) {
int sum = 0;
int temp = num; // 保存原始数字以便取出每一位
while (temp != 0) {
int digit = temp % 10;
sum += digit * digit * digit; // 计算每个位的立方
temp /= 10;
}
return sum == num; // 如果计算结果等于原始数字,则返回true
}
阅读全文