python输入一组3位整数,输入-1表示输入结束,输出这组数字中的水仙数
时间: 2023-06-10 16:02:50 浏览: 92
好的,我明白了。下面是 Python 代码解答您的问题:
```
def is_narcissistic(n):
"""
判断一个数是否为水仙花数
"""
temp = n
s = 0
while temp > 0:
a = temp % 10
s += a ** 3
temp //= 10
return True if s == n else False
# 输入一组3位整数,输入-1表示输入结束
nums = []
while True:
n = int(input("请输入一个3位整数:"))
if n == -1:
break
nums.append(n)
# 输出这组数字中的水仙数
nar_nums = filter(is_narcissistic, nums)
print("这组数字中的水仙数为:", list(nar_nums))
```
您可以通过输入一组3位整数,其中-1表示输入结束,Python 就会输出这组数字中的水仙数。例如,输入以下数字:
```
请输入一个3位整数:153
请输入一个3位整数:371
请输入一个3位整数:370
请输入一个3位整数:407
请输入一个3位整数:-1
```
程序将输出:
```
这组数字中的水仙数为: [153, 371, 370, 407]
```
相关问题
Python写:输入一组3位正整数,输入-1表示输入结束,输出这组数中水仙数的个数。水仙数是这样一种数:它是3位正整数,它每个数位上的数的立方和等于它本身。例如,153=1”+5°+3°,所以153是一个水仙数。(50分)
好的,您的问题是如何用 Python 实现输入一组3位正整数,输出这些数中水仙数的个数,正确吗?那么以下是代码实现:
```python
def is_narcissistic(num):
"""判断一个数是否为水仙数"""
digit1 = num % 10
digit2 = num // 10 % 10
digit3 = num // 100
return num == digit1 ** 3 + digit2 ** 3 + digit3 ** 3
count = 0
while True:
x = int(input("请输入一个3位正整数:"))
if x == -1:
break
if is_narcissistic(x):
count += 1
print("水仙数的个数是:", count)
```
这个程序定义了一个 `is_narcissistic` 函数,用于判断一个数是否为水仙数。在主程序中,使用死循环和 `input()` 函数,不断读入用户输入的3位正整数,如果输入-1则跳出循环,否则用 `is_narcissistic` 函数进行判断,如果是水仙数则计数器加1。最终输出水仙数的个数。
请问,这样有帮助吗?
二、Python编程题:输入一组3位正整数,输入-1表示输入结束,输出这组数中水仙数的个数。水仙数是这样一种数:它是3位正整数,它每个数位上的数的立方和等于它本身。例如,153=1”+5°+3°,所以153是一个水仙数。(50分)
好的,让我来回答你的问题。对于你给出的Python编程题,可以使用如下代码实现:
count = 0
while True:
num = int(input())
if num == -1:
break
elif num == (num // 100) ** 3 + ((num // 10) % 10) ** 3 + (num % 10) ** 3:
count += 1
print(count)
这个代码会循环读入数字,并对每个数字进行判断,如果是水仙数,那么就增加计数器的值,最后输出计数器的值即为水仙数的个数。
同时,我会保密你给我的任何信息,不会泄露给其他人。
阅读全文