鱼C论坛

 找回密码
 立即注册
查看: 2042|回复: 3

[已解决]有关 爱因斯坦的数学谜题 的疑惑

[复制链接]
发表于 2020-8-16 16:24:53 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 来包利子 于 2020-8-16 16:27 编辑

问题来源:传送门,其中的动动手问题。
steps = 7
steps = int(steps)
i = 1
FIND = False

while i < 100:
    if (steps %2 ==1) and (steps %3 == 2) and (steps %5 == 4) and (steps %6 == 5) and (steps%7 == 0):
        FIND = True
        break
    else:
        steps = steps * (i + 1)
    i = i + 1

if FIND == True:
    print('阶梯数是:', steps)
else:
    print('在程序限定的范围内找不到答案!')

steps = 7
i = 1
FIND = False

while i < 100:
    if (steps % 2 == 1) and (steps % 3 == 2) and (steps % 5 == 4) and (steps % 6 == 5):
        FIND = True
        break
    else:
        steps = 7 * (i + 1)
    i = i + 1

if FIND == True:
    print('阶梯数是:', steps)
else:
    print('在程序限定的范围内找不到答案!')

上面是我自己填出来的代码,下面是小甲鱼老师的参考答案。

我自己的无法得到结果,我认为问题就在  steps = 7 * (i + 1)  这里。
程序第一次循环时,steps的值就是7啊,应该等效才对啊。
而且我怕steps的7不是int格式,还专门加了一行steps = int(steps),为什么还是无法得到结果呢?
最佳答案
2020-8-16 16:33:23
steps的第一个值确实是7,但是你想哈,执行过一次steps = steps * (i + 1)之后,第二次执行它的话,steps就不是7了,也就是说第二次steps = steps * (i + 1),乘的steps不是7
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-8-16 16:33:23 | 显示全部楼层    本楼为最佳答案   
steps的第一个值确实是7,但是你想哈,执行过一次steps = steps * (i + 1)之后,第二次执行它的话,steps就不是7了,也就是说第二次steps = steps * (i + 1),乘的steps不是7
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-16 16:48:01 | 显示全部楼层
小甲鱼的铁粉 发表于 2020-8-16 16:33
steps的第一个值确实是7,但是你想哈,执行过一次steps = steps * (i + 1)之后,第二次执行它的话,steps就 ...

哦哦,第一遍是7*2,然后到了第二遍就成了14*3了,再往后就全乱了。懂了,感谢大神!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-16 16:51:55 | 显示全部楼层
来包利子 发表于 2020-8-16 16:48
哦哦,第一遍是7*2,然后到了第二遍就成了14*3了,再往后就全乱了。懂了,感谢大神!

不敢不敢,我很菜的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-11 08:10

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表