懵逼的一天从if开始
steps = 7i = 1
FIND = False
while i < 100:
if ((steps - 1) % 2) and ((steps - 2) % 3) and ((steps - 4) % 5) and ((steps - 5) % 6):
FIND = True
break
else:
steps = 7 * (i + 1)
i = i + 1
if FIND == True:
print('阶梯数是:', steps)
else:
print('在程序限定的范围内找不到答案!')
不知道问题出在哪,我的想法是 每次跨两台阶剩一个就是把剩的那个减去就没有余数了,这样就是ok的了,但是答案不对(哭
感谢大佬们的每一次指导
谢谢 emmm,不太懂你问的问题是什么 ifx%2表示 ifx%2不等于0 和你期望恰恰相反 steps = 7
i = 1
FIND = False
while i < 100:
if not(((steps - 1) % 2) and ((steps - 2) % 3) and ((steps - 4) % 5) and ((steps - 5) % 6)):
FIND = True
break
else:
steps = 7 * (i + 1)
i = i + 1 本帖最后由 Twilight6 于 2020-5-20 08:42 编辑
因为在Python 中 ,非0数为 True ,0 为 False
# 因为你 if 条件里的代码:
if ((steps - 1) % 2) and ((steps - 2) % 3) and ((steps - 4) % 5) and ((steps - 5) % 6):
当条件全部成立时候 , 即全部求余数都得 0 ,那么就符合条件
但是把 0 作为 if 条件,if要为True时候才运行if里面的代码块,而 0 为False 则不运行 if 里面的代码块
你把 if 条件上加个 not 括起来就如果 求余数都为 0 转为条件成立 执行 if代码块
若你不想用 not 那你if 条件代码应该改成:
if (x%2==1) and(x%3==2) and (x%5==4) and (x%6==5):
这样即可
永恒的蓝色梦想 发表于 2020-5-20 07:11
试运行了吗{:5_97:} 禾马 发表于 2020-5-21 10:41
试运行了吗
那肯定是没有的。
页:
[1]