zmq 发表于 2020-6-29 19:51:27

006 爱因斯坦

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('在程序限定的范围内找不到答案!')

这个题目中在while 循环里的if 条件从句中,能否在最后加一个 (x%7==0)? 为啥是在else语句中放一个7的倍数这样的逻辑?

heidern0612 发表于 2020-6-29 20:01:49

本帖最后由 heidern0612 于 2020-6-29 20:10 编辑

题目不是说了吗,x一定是7的倍数,既然在if分支里找不到,那就找7的下一个倍数里的循环啊。

也就是说,7以内找不到,就找7到14以内的,7到14以内找不到,就找14到21的,后面类推。

你得根据题目编写程序,题目里也没说需要x%7==0的判断。

但是既然符合x一定是7的倍数,你加上也是可以的,但是没必要加,加上了不多此一举吗?

前面if分支那些条件已经够判断是否阶梯数了。
页: [1]
查看完整版本: 006 爱因斯坦