wherefree 发表于 2020-10-14 20:03:21

第6讲:Python之常用操作符 | 课后测试题 求台阶数程序求指点

本人写的如下:
s = 7
while s % 7 != 0 or s % 6 != 5 or s % 5 != 4 or s % 4 != 3 or s % 3 != 2:
    s += 7
print(s)

发觉与老师的正确答案有出入,求大神点评一下,与老师的有何不一样?

疾风怪盗 发表于 2020-10-14 20:07:39

本帖最后由 疾风怪盗 于 2020-10-14 20:08 编辑

运算出来是119

这个是别人的代码,结果是一样的啊
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-10-14 20:56:30

没什么很大区别么,算法都是枚举7的倍数再检测是否符合
另外你的条件里求除以7的余数有点多余了,枚举的本来就是7的倍数

wherefree 发表于 2020-10-15 12:30:02

笨鸟学飞 发表于 2020-10-14 20:56
没什么很大区别么,算法都是枚举7的倍数再检测是否符合
另外你的条件里求除以7的余数有点多余了,枚举的本 ...

多谢指教!经过点拨,有种恍然小悟的感觉{:5_106:}
代码可以精简为:
s = 7
while s % 6 != 5 or s % 5 != 4 or s % 4 != 3 or s % 3 != 2:
    s += 7
print(s)
页: [1]
查看完整版本: 第6讲:Python之常用操作符 | 课后测试题 求台阶数程序求指点