求大神帮忙?
题爱因斯坦曾出过这样一道有趣的数学题:有一个长阶梯,若每步上2阶,最后剩1阶;若每步上3阶,最后剩2阶;若每步上5阶,最后剩4阶;若每步上6阶,最后剩5阶;只有每步上7阶,最后刚好一阶也不剩。
自己写的
n=1
flag=0
a=(n/7)
b=((n-1)/2)
c=((n-2)/3)
d=((n-4)/5)
e=((n-5)/6)
a1=int(a)
b1=int(b)
c1=int(c)
d1=int(d)
e1=int(e)
while n<=200:
if a==a1 and b==b1 and c==c1 and d==d1 and e==e1:
flag=1
else:
a=((n+1)/7)#数字每次加1去试
b=((n-1+1)/2)
c=((n-2+1)/3)
d=((n-4+1)/5)
e=((n-5+1)/6)
n+=1
if flag==1:
print (a)
就是想用除法不想用余数 So?
你的问题是?
而且,用余数的核心逻辑只需要一行代码 这个代码运行出不了结果 qiuyouzhi 发表于 2020-4-15 11:06
So?
你的问题是?
而且,用余数的核心逻辑只需要一行代码
我写的这个有问题,没有答案,不知道哪错了 你的意思是想自己写个余数的算法? 岚冰1234 发表于 2020-4-15 11:11
你的意思是想自己写个余数的算法?
想问一下我写的这个为什么,也不报错,就是没答案 tianyafenger 发表于 2020-4-15 11:12
想问一下我写的这个为什么,也不报错,就是没答案
for i in range(200):
if i % 2 and i % 3 == 2 and i % 5 == 4 and i % 6 == 5 and not i % 7:
print(i)
为啥不用取余呢? qiuyouzhi 发表于 2020-4-15 11:19
为啥不用取余呢?
第一张开始用的除法写的,老是有问题,取余的这个我也写了一遍没问题,心里想知道除法这个到底错在哪了? tianyafenger 发表于 2020-4-15 11:25
第一张开始用的除法写的,老是有问题,取余的这个我也写了一遍没问题,心里想知道除法这个到底错在哪了?
你那个a,b,c,d,e,用n-1/2,咋可能和a1这些相等呢。。。
我很想听听你的思路 qiuyouzhi 发表于 2020-4-15 11:27
你那个a,b,c,d,e,用n-1/2,咋可能和a1这些相等呢。。。
我很想听听你的思路
我想的是,n每次去加1,这样去试商 tianyafenger 发表于 2020-4-15 11:38
我想的是,n每次去加1,这样去试商
你试商有什么用?
题目给你的信息是余数,
你试商。。。 qiuyouzhi 发表于 2020-4-15 11:40
你试商有什么用?
题目给你的信息是余数,
你试商。。。
a的结果是整数(如果商有余数说明不满足题意)
a1的结果是整数说明满足题意
b和b1也一样 因为你abcde在循环体内重新赋值了
而a1,b1,c1这些永远等于0,判断条件永远不成立,当循环次数到了后,就没有结果啊
tianyafenger 发表于 2020-4-15 11:44
a的结果是整数(如果商有余数说明不满足题意)
a1的结果是整数说明满足题意
b和b1也一样
意思就是a不再有余数了,整除了那么就知道结果了 岚冰1234 发表于 2020-4-15 11:45
因为你abcde在循环体内重新赋值了
而a1,b1,c1这些永远等于0,判断条件永远不成立,当循环次数到了后,就 ...
因为上节课我们还没有教大家“求余”的操作,所以小甲鱼使用了“if year/400 == int(year/400)”这样的方式来“委曲求全”。
我看见老师原来也是这样的写的 tianyafenger 发表于 2020-4-15 11:47
因为上节课我们还没有教大家“求余”的操作,所以小甲鱼使用了“if year/400 == int(year/400)”这样的方 ...
那怎么改呀 tianyafenger 发表于 2020-4-15 11:47
因为上节课我们还没有教大家“求余”的操作,所以小甲鱼使用了“if year/400 == int(year/400)”这样的方 ...
你说的对,循环里负赋值导致不行的!
我又试了一下看看
可以了谢谢!!
n=1
flag=0
a=(n/7)
b=((n-1)/2)
c=((n-2)/3)
d=((n-4)/5)
e=((n-5)/6)
a1=int(a)
b1=int(b)
c1=int(c)
d1=int(d)
e1=int(e)
while n<=200:
if a==a1 and b==b1 and c==c1 and d==d1 and e==e1:
flag=1
else:
a=((n+1)/7)#数字每次加1去试
b=((n-1+1)/2)
c=((n-2+1)/3)
d=((n-4+1)/5)
e=((n-5+1)/6)
a1=int(a)
b1=int(b)
c1=int(c)
d1=int(d)
e1=int(e)
n+=1
if flag==1:
print (7*a)
岚冰1234 发表于 2020-4-15 11:45
因为你abcde在循环体内重新赋值了
而a1,b1,c1这些永远等于0,判断条件永远不成立,当循环次数到了后,就 ...
tianyafenger 发表于 2020-4-15 11:47
因为上节课我们还没有教大家“求余”的操作,所以小甲鱼使用了“if year/400 ==
你说的对,循环里负赋值导致不行的!
我又试了一下看看
可以了谢谢!!
n=1
flag=0
a=(n/7)
b=((n-1)/2)
c=((n-2)/3)
d=((n-4)/5)
e=((n-5)/6)
a1=int(a)
b1=int(b)
c1=int(c)
d1=int(d)
e1=int(e)
while n<=200:
if a==a1 and b==b1 and c==c1 and d==d1 and e==e1:
flag=1
else:
a=((n+1)/7)#数字每次加1去试
b=((n-1+1)/2)
c=((n-2+1)/3)
d=((n-4+1)/5)
e=((n-5+1)/6)
a1=int(a)
b1=int(b)
c1=int(c)
d1=int(d)
e1=int(e)
n+=1
if flag==1:
print (7*a)
页:
[1]