|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
steps = 7
i = 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的了,但是答案不对(哭
感谢大佬们的每一次指导
谢谢
本帖最后由 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):
复制代码
这样即可
|
|