def isNarcissistic(x):
时间: 2024-01-11 22:03:35 浏览: 27
def isNarcissistic(x):
"""
Function to check a number is narcissistic or not.
Parameters:
x (int): The to be checked.
Returns:
bool: if the number is narcissistic, False otherwise """
# Convert the number to a string
num_str = str(x)
# Get the number of digits in the number
num_length = len(num_str)
# Calculate the sum of each digit raised to the power of the number of digits
narc_sum = sum(int(digit) ** num_length for digit in num_str)
# Check if the sum is equal to the original number
if narc_sum == x:
return True
else:
return False
相关问题
用c++写出判断x是否为水仙花数,若是返回1,不是返回0
好的,以下是用 C++ 编写的水仙花数判断函数:
```c++
int isNarcissistic(int x) {
int sum = 0;
int temp = x;
int n = 0;
while (temp > 0) {
n++;
temp /= 10; // 求出 x 的位数
}
temp = x;
while (temp > 0) {
int r = temp % 10; // 求出 x 的个位
sum += pow(r, n); // 计算每一位的 n 次方之和
temp /= 10;
}
return sum == x; // 判断是否为水仙花数
}
```
在主函数中,可以这样调用:
```c++
int main() {
int x;
cin >> x;
if (isNarcissistic(x)) {
cout << "Yes" << endl;
} else {
cout << "No" << endl;
}
return 0;
}
```
其中,输入的 x 为待判断的数,isNarcissistic(x) 返回 1 表示 x 是水仙花数,返回 0 表示 x 不是水仙花数。
三位的水仙花数: 输入一个三位的正整数n, 输出100~n范围内所有的水仙花数。 用函数判断一个整数是不是水仙花数,是返回1,不是返回0。 主函数调用该函数,实现输出100~n之间的所有水仙花数。 三位的水仙花数是指,该数的三个数字立方之和等于该数本身。
以下是Python代码实现:
```python
# 判断一个数是否为水仙花数
def isNarcissistic(num):
str_num = str(num) # 将整数转换为字符串
digit_sum = 0 # 初始化各位数字的立方和为0
for digit in str_num:
digit_sum += int(digit) ** 3 # 计算各位数字的立方和
if digit_sum == num: # 如果各位数字的立方和等于该数本身,则为水仙花数
return 1
else:
return 0
# 输出100~n之间的所有水仙花数
n = int(input("请输入一个三位的正整数:"))
for i in range(100, n+1):
if isNarcissistic(i):
print(i)
```
示例输出:
```
请输入一个三位的正整数:500
153
370
371
407
```