定义一个函数,判断一个数n是否是水仙花数,n从键盘输入
时间: 2024-05-13 17:17:47 浏览: 10
水仙花数,也被称为阿姆斯特朗数,是指一个n位正整数(n≥3),它的每个位上的数字的n次幂之和等于它本身。例如,153是一个水仙花数,因为153=1^3+5^3+3^3。
以下是判断一个数n是否是水仙花数的函数实现:
```python
def is_narcissistic_number(n):
# 将输入的数字转换为字符串,并获取它的位数
num_str = str(n)
length = len(num_str)
# 计算每个位上的数字的n次幂之和
sum = 0
for i in range(length):
digit = int(num_str[i])
sum += digit ** length
# 判断是否是水仙花数
if sum == n:
return True
else:
return False
```
使用方法:
```python
num = int(input("请输入一个正整数:"))
if is_narcissistic_number(num):
print("{}是水仙花数".format(num))
else:
print("{}不是水仙花数".format(num))
```
相关问题
C语言用函数形式判断一个数是否是水仙花数
好的,这里是一个用C语言实现的判断水仙花数的函数:
```c
#include <stdbool.h>
bool is_narcissistic_number(int n) {
int sum_of_cubes = 0;
int temp = n;
while (temp > 0) {
int digit = temp % 10;
sum_of_cubes += digit * digit * digit;
temp /= 10;
}
return sum_of_cubes == n;
}
```
这个函数会返回一个布尔值,表示传入的整数是否是水仙花数。
你可以在主程序中调用这个函数来判断一个数是否是水仙花数。这里是一个简单的例子:
```c
#include <stdio.h>
#include <stdbool.h>
bool is_narcissistic_number(int n);
int main() {
int n;
printf("请输入一个整数:\n");
scanf("%d", &n);
if (is_narcissistic_number(n)) {
printf("%d 是水仙花数。\n", n);
} else {
printf("%d 不是水仙花数。\n", n);
}
return 0;
}
```
希望这个代码可以帮到你!
创建一个函数,接受一个参数n,判断这个数是不是水仙花数
好的,我可以帮你创建这个函数。水仙花数是指一个n位数,其各位数字的n次方之和等于该数本身。例如153是一个水仙花数,因为1^3 + 5^3 + 3^3 = 153。
以下是判断一个数是否为水仙花数的函数:
```python
def is_narcissistic_number(n):
# 将数字转换为字符串,以便逐位取数
s = str(n)
# 计算位数
num_digits = len(s)
# 初始化各位数字的n次方之和为0
sum_of_digits = 0
# 逐位取数并计算n次方之和
for digit in s:
sum_of_digits += int(digit) ** num_digits
# 判断各位数字的n次方之和是否等于该数本身
return sum_of_digits == n
```
你可以调用这个函数,并传入一个数n作为参数,以判断该数是否为水仙花数。