python三位数水仙花数计算_输入一组三位正整数,用python求水仙花数的个数?

一看就是亲学哥学姐了,我来回答一波,方便学弟学妹查看 匿名了

如果按照题意解答,代码如下(前一位答主写的很好,我稍加注释,便于理解)

num=input('请输入多个三位正整数,以-1结尾:')

nums= num.split()#此时num依据空格分成了多个字符串

count=0#用于计数

for i in nums:#分别把nums中的字符串代入

n=eval(i)#将字符串类型转化成数字类型以计算

if n==-1:#到-1停止运算

break

if n!=int(n):#浮点数判断,使得输入浮点数不会报错

print(f"{n}是小数",end=" ")

else:

if n<100 or n>999:

print(f"{n}不是三位正整数",end=" ")

else:

a=n//100#百位

b=(n%100)//10#十位

c=n%10#个位

if n==a**3+b**3+c**3:

print(f"{n}是水仙花数",end=" ")

count+=1

else:

print(f"{n}不是水仙花数",end=" ")

print(f"\n有{count}个水仙花数")

我不是很专业,自己学了一点点,如有错误,还望指正。

但是!!!!可爱的计算机老师的意思其实是让你分别输入这些数,并非一次性输入一组数据,所以你应该提交的代码如下

while True:

nn=eval(input("请输入一个三位正整数:"))

if nn!=int(nn):

print("请不要输入小数,请您重新输入。")

elif nn<100 or nn>999:

print("输入有误,请您重新输入。")

else:

a=nn//100

b=(nn%100)//10

c=nn%10

if nn==a**3+b**3+c**3:

print(f"{nn}是水仙花数。")

else:

print(f"{nn}不是水仙花数。")

e=input("是否继续判断?输入-1结束。")

if e=="-1":

print("感谢使用。")

break

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值