153为什么输出不是水仙花数?
来源:2-14 编程练习
慕运维7103654
2019-11-23 03:24:59
num = int(input("请输入一个三位数:")) # 分别求出三位数的个位,十位,百位 bw = num / 100 sw = (num - bw * 100) / 10 gw = (num - bw * 100 - sw * 10) / 1 # 定义变量total,保存各位数字立方和 totol =(bw ** 3) + (sw ** 3) + (gw ** 3) # 用if语句判断条件是否成立,并做出相应的输出 if totol == num: print(str(num) + '是水仙花数') else: print(str(num) + '不是水仙花数') #补全代码
还有能详细讲解一下分别求出三位数的 个位 十位 百位数 是怎么求出来的? 又为什么这么求
3回答
Umud
2019-11-24
时间,
2019-11-24
同学,你好。
1、同学程序中得到的个位,十位,百位的的值是不对的。
求个位,十位,百位的方法:
个位gw:除以10取余即num % 10
十位sw:除以100取余之后再对余数53除10取商得到5即num % 100 // 10
百位bw:除以100取商即num // 100
如果我的回答解决了您的疑惑,请采纳!祝学习愉快~~~~
weixin_慕田峪9013256
2019-11-23
num = int(input("请输入一个三位数:"))
# 分别求出三位数的个位,十位,百位
gw = int(num) % 10
sw = int(num) // 10 % 10
bw = int(num) // 100
# 定义变量total,保存各位数字立方和
total = gw**3 + sw**3 + bw**3
# 用if语句判断条件是否成立,并做出相应的输出
if total == num:
print("{}是水仙花数".format(num))
else:
print("{}不是水仙花数".format(num))
相似问题