spacex_dragon 发表于 2021-3-8 13:12:48

关于006课:爱因斯坦的难题之示阶梯数

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

# 以下是小甲鱼的答案原码:
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):# 为什么第一个判断条件是: x%2 == 1? 也就是说7 % 2 ==1?按题要求,每步上7阶,最后一步不剩,那不是应该7除以2的余数为0吗?虽然知道结果是对的,可对这个条件不理解
      flag = 1
    else:
      x = 7 * (i+1) # 根据题意,x一定是7的整数倍,所以每次乘以7
    i += 1
if flag == 1:
    print('阶梯数是:', x)
else:
    print('在程序限定的范围内找不到答案!')

小伤口 发表于 2021-3-8 13:25:42

本帖最后由 小伤口 于 2021-3-8 13:28 编辑

为什么第一个判断条件是: x%2 == 1? 也就是说7 % 2 ==1?按题要求,每步上7阶,最后一步不剩,那不是应该7除以2的余数为0吗?
如果阶梯数是7
每步上2阶就应该剩余1呀
x%2这些就是题目
一个长阶梯,若每步上2阶,最后剩1阶;若每步上3阶,
最后剩2阶;若每步上5阶,最后剩4阶;若每步上6阶,
最后剩5阶
这些内容

柿子饼同学 发表于 2021-3-8 13:51:01

它说的很明白了,每步2阶,剩一阶,不就是阶梯数除以2余1吗?那用取余数运算符不就是x%2 == 1吗
那把题目翻译成人话就是求一个除2余1,除3余2,除5余4,除6余5的7的一个倍数{:10_277:}

spacex_dragon 发表于 2021-3-9 09:07:37

小伤口 发表于 2021-3-8 13:25
为什么第一个判断条件是: x%2 == 1? 也就是说7 % 2 ==1?按题要求,每步上7阶,最后一步不剩,那不是应该7 ...

反应过来了,是我一时脑短路
页: [1]
查看完整版本: 关于006课:爱因斯坦的难题之示阶梯数