|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 mumei2018 于 2023-5-1 16:15 编辑
for i in range(100,1000):
if i == (i//100)**3 +(i%100-i%10) **3 + (i%10)**3:
#(i//100)得到百位 (i%100-i%10)得到十位 (i%10)得到各位
print(i)
我这个只能得到一个水仙花数 407 前面的都没有
我第一回发帖的时候 手滑把中间一小段删了 现在补回来了 上面红色那段 作业里是有些的 然后我发现(i%100-i%10)并不能得到十位 我改成这样((i%100-i%10)%10) 但还是只有407了
我明白您的问题了。问题出在您计算十位数的方法上。您可以使用 (i % 100) // 10 来计算十位数。这是因为 i % 100 会去掉百位数,然后 // 10 会去掉个位数,从而得到十位数。这是修改后的代码:
- for i in range(100, 1000):
- if i == (i // 100) ** 3 + ((i % 100) // 10) ** 3 + (i % 10) ** 3:
- # (i // 100) 得到百位,((i % 100) // 10) 得到十位,(i % 10) 得到个位
- print(i)
复制代码
这段代码应该可以正确计算并输出所有的水仙花数。
|
|