鱼C论坛

 找回密码
 立即注册
查看: 955|回复: 6

[已解决]求大神解答!!!

[复制链接]
发表于 2020-5-26 15:40:55 | 显示全部楼层 |阅读模式

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

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

x
x = 7
i = 1
flag = 0

while i <= 100:
    if (x%2 == 1) and (x%3 == 2) and (x%5 == 4) and (x%6==5):
        flag = 1
    else:
        x = 7 * (i+1) # 根据题意,x一定是7的整数倍,所以每次乘以7
    i += 1

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



我搞了两天到现在都还看不懂   为啥用这个程序来求爱因斯坦阶梯   求大神标注一下
最佳答案
2020-5-26 18:56:52
窝在家里写程序 发表于 2020-5-26 18:45
你能给我这个程序的代码后面标注一下吗?麻烦了

x = 7       # 初始化台阶数
i = 1       # 初始化循环次数
flag = 0    # 初始化判断是否是爱因斯坦台阶的参数

while i <= 100:
    # 若每步上2阶,最后剩1阶,就是 x % 2 == 1
    # 若每步上3阶,最后剩2阶,就是 x % 3 == 2
    # 若每步上5阶,最后剩4阶,就是 x % 5 == 4
    # 若每步上6阶,最后剩5阶,就是 x % 6 == 5
    # 只有每步上7阶最后不剩,所以我们直接初始拿 7 来作为起始台阶 
    if (x%2 == 1) and (x%3 == 2) and (x%5 == 4) and (x%6==5):
        flag = 1  # 如果符合条件  则 flag = 1 为了让循环外面的 if flag == 1 判断 100 次内 有没有爱因斯坦台阶
    else:
        x = 7 * (i+1) # 根据题意,x一定是7的整数倍,所以每次乘以7
        
    i += 1 # 这是记录循环次数,循环100次内查找爱因斯坦台阶

if flag == 1:   # 如果flag == 1 那么就是爱因斯坦台阶
    
    print('阶梯数是:', x) # 打印台阶数
    
else:
    print('在程序限定的范围内找不到答案!')   #反正在100次循环内找不到爱因斯坦台阶
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-5-26 15:45:09 | 显示全部楼层
本帖最后由 Twilight6 于 2020-5-26 15:46 编辑

爱因斯坦曾出过这样一道有趣的数学题:有一个长阶梯,若每步上2阶,最后剩1阶;若每步上3阶,最后剩2阶;若每步上5阶,最后剩4阶;若每步上6阶,最后剩5阶;只有每步上7阶,最后刚好一阶也不剩。

题目是这样的,因为题目最后说了  每次 7 台阶  刚好不剩,说明7可以整除
然后题目中的题意
若每步上2阶,最后剩1阶;若每步上3阶,最后剩2阶;若每步上5阶,最后剩4阶;若每步上6阶,最后剩5阶;只有每步上7阶
要全部满足,才算是正确的台阶,也就是程序这里的 if 条件语句
 if (x%2 == 1) and (x%3 == 2) and (x%5 == 4) and (x%6==5):
如果这个 if 条件不满足,就重新计算下一个 7 的倍数的台阶是否满足 if 条件 ,以此一直循环
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-26 18:45:35 | 显示全部楼层
Twilight6 发表于 2020-5-26 15:45
题目是这样的,因为题目最后说了  每次 7 台阶  刚好不剩,说明7可以整除
然后题目中的题意要全部满足, ...

你能给我这个程序的代码后面标注一下吗?麻烦了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-26 18:56:52 | 显示全部楼层    本楼为最佳答案   
窝在家里写程序 发表于 2020-5-26 18:45
你能给我这个程序的代码后面标注一下吗?麻烦了

x = 7       # 初始化台阶数
i = 1       # 初始化循环次数
flag = 0    # 初始化判断是否是爱因斯坦台阶的参数

while i <= 100:
    # 若每步上2阶,最后剩1阶,就是 x % 2 == 1
    # 若每步上3阶,最后剩2阶,就是 x % 3 == 2
    # 若每步上5阶,最后剩4阶,就是 x % 5 == 4
    # 若每步上6阶,最后剩5阶,就是 x % 6 == 5
    # 只有每步上7阶最后不剩,所以我们直接初始拿 7 来作为起始台阶 
    if (x%2 == 1) and (x%3 == 2) and (x%5 == 4) and (x%6==5):
        flag = 1  # 如果符合条件  则 flag = 1 为了让循环外面的 if flag == 1 判断 100 次内 有没有爱因斯坦台阶
    else:
        x = 7 * (i+1) # 根据题意,x一定是7的整数倍,所以每次乘以7
        
    i += 1 # 这是记录循环次数,循环100次内查找爱因斯坦台阶

if flag == 1:   # 如果flag == 1 那么就是爱因斯坦台阶
    
    print('阶梯数是:', x) # 打印台阶数
    
else:
    print('在程序限定的范围内找不到答案!')   #反正在100次循环内找不到爱因斯坦台阶
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-26 19:08:34 | 显示全部楼层

明白了  谢谢!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-26 19:09:04 | 显示全部楼层

最后打错一个字 是反之
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-26 19:16:03 | 显示全部楼层

那个x应该赋什么值都可以吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-21 01:51

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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