实现Python程序,用于判断用户输入的数字是否为水仙花数: 注:水仙花数是指一个3位数,它的每个数位上的数字的3次幂之和等于它本 身。例如:1^3+5^3+3^3=153。 拓展:对任意n位数,判断其是否为每个数位上的数字的n次幂之和等于它本 身。
时间: 2024-10-21 12:01:35 浏览: 87
为了实现这个功能,你可以编写一个Python函数,接受用户输入的整数作为参数,然后检查该数字是否满足水仙花数的条件。首先,我们将函数命名为`is_narcissistic_number`,并实现n位数的版本:
```python
def is_narcissistic_number(num, n=None):
# 如果未指定n,假设输入的是三位数
if n is None:
n = len(str(num))
# 将数字转换为字符串,然后按位置取每一位数字的幂相加
sum_of_powers = sum(int(digit)**n for digit in str(num))
# 判断是否相等,如果相等则返回True,表示是水仙花数;否则False
return num == sum_of_powers
# 获取用户输入
user_input = int(input("请输入一个整数(若为n位数请输入n,否则默认为3位): "))
n = input("您想检查几位数的水仙花数吗? (留空则默认为3): ").strip() or 3
# 判断输入的数是否是水仙花数
if is_narcissistic_number(user_input, int(n)):
print(f"{user_input} 是一个{n}位的水仙花数")
else:
print(f"{user_input} 不是一个{n}位的水仙花数")
相关问题
pytho判断水仙花数水仙花数是一个3位数,它 的每位数字的3次幂之和等于它本身,例 如:13+53+33=153,153就是一个水仙花数。编写程序,实现判断用户输入的3位数是否为水仙花数python
在Python中,我们可以创建一个函数来检查一个三位数是否是水仙花数。以下是一个简单的实现:
```python
def is_armstrong_number(num):
# 将输入的数字转换为字符串以便获取每一位数字
num_str = str(num)
# 确保输入的是三位数
if len(num_str) != 3:
return False
# 分别计算每个位上的数字的立方和
first_digit = int(num_str[0])
second_digit = int(num_str[1])
third_digit = int(num_str[2])
sum_of_cubes = first_digit**3 + second_digit**3 + third_digit**3
# 如果和等于原数,则是水仙花数,返回True,否则False
return sum_of_cubes == num
# 获取用户输入并进行验证
number = int(input("请输入一个三位数: "))
if is_armstrong_number(number):
print(f"{number} 是水仙花数")
else:
print(f"{number} 不是水仙花数")
水仙花数判断。水仙花数也被称为超完全数字不变数、自恋数、自幂数等。水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身。例如:1^3 + 5^3+ 3^3 = 153。 从键盘输入一个三位数,判断是否是水仙花数Python程序
以下是 Python 代码实现:
num = int(input("请输入一个三位数:"))
sum = 0
temp = num
while temp > 0:
digit = temp % 10
sum += digit ** 3
temp //= 10
if num == sum:
print(num, "是水仙花数")
else:
print(num, "不是水仙花数")
阅读全文
相关推荐
















