鱼C论坛

 找回密码
 立即注册
查看: 1010|回复: 17

[已解决]求大神帮忙?

[复制链接]
发表于 2020-4-15 10:53:12 From FishC Mobile | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x

爱因斯坦曾出过这样一道有趣的数学题:有一个长阶梯,若每步上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)
就是想用除法不想用余数
最佳答案
2020-4-15 11:45:29
因为你abcde在循环体内重新赋值了

而a1,b1,c1这些永远等于0,判断条件永远不成立,当循环次数到了后,就没有结果啊

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-4-15 11:06:25 | 显示全部楼层
So?
你的问题是?
而且,用余数的核心逻辑只需要一行代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-15 11:10:40 From FishC Mobile | 显示全部楼层
这个代码运行出不了结果
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-15 11:11:47 From FishC Mobile | 显示全部楼层
qiuyouzhi 发表于 2020-4-15 11:06
So?
你的问题是?
而且,用余数的核心逻辑只需要一行代码

我写的这个有问题,没有答案,不知道哪错了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-15 11:11:48 | 显示全部楼层
你的意思是想自己写个余数的算法?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2020-4-15 11:12:55 From FishC Mobile | 显示全部楼层
岚冰1234 发表于 2020-4-15 11:11
你的意思是想自己写个余数的算法?

想问一下我写的这个为什么,也不报错,就是没答案
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-15 11:19:39 | 显示全部楼层
tianyafenger 发表于 2020-4-15 11:12
想问一下我写的这个为什么,也不报错,就是没答案
  1. for i in range(200):
  2.     if i % 2 and i % 3 == 2 and i % 5 == 4 and i % 6 == 5 and not i % 7:
  3.         print(i)
复制代码

为啥不用取余呢?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-15 11:25:11 From FishC Mobile | 显示全部楼层
qiuyouzhi 发表于 2020-4-15 11:19
为啥不用取余呢?

第一张开始用的除法写的,老是有问题,取余的这个我也写了一遍没问题,心里想知道除法这个到底错在哪了?
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-15 11:27:04 | 显示全部楼层
tianyafenger 发表于 2020-4-15 11:25
第一张开始用的除法写的,老是有问题,取余的这个我也写了一遍没问题,心里想知道除法这个到底错在哪了?

你那个a,b,c,d,e,用n-1/2,咋可能和a1这些相等呢。。。
我很想听听你的思路
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-15 11:38:51 From FishC Mobile | 显示全部楼层
qiuyouzhi 发表于 2020-4-15 11:27
你那个a,b,c,d,e,用n-1/2,咋可能和a1这些相等呢。。。
我很想听听你的思路

我想的是,n每次去加1,这样去试商
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-15 11:40:28 | 显示全部楼层
tianyafenger 发表于 2020-4-15 11:38
我想的是,n每次去加1,这样去试商

你试商有什么用?
题目给你的信息是余数,
你试商。。。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-15 11:44:42 From FishC Mobile | 显示全部楼层
qiuyouzhi 发表于 2020-4-15 11:40
你试商有什么用?
题目给你的信息是余数,
你试商。。。

a的结果是整数(如果商有余数说明不满足题意)
a1的结果是整数说明满足题意
b和b1也一样
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-4-15 11:45:29 | 显示全部楼层    本楼为最佳答案   
因为你abcde在循环体内重新赋值了

而a1,b1,c1这些永远等于0,判断条件永远不成立,当循环次数到了后,就没有结果啊

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-15 11:45:47 From FishC Mobile | 显示全部楼层
tianyafenger 发表于 2020-4-15 11:44
a的结果是整数(如果商有余数说明不满足题意)
a1的结果是整数说明满足题意
b和b1也一样

意思就是a不再有余数了,整除了那么就知道结果了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-15 11:47:53 From FishC Mobile | 显示全部楼层
岚冰1234 发表于 2020-4-15 11:45
因为你abcde在循环体内重新赋值了

而a1,b1,c1这些永远等于0,判断条件永远不成立,当循环次数到了后,就 ...

因为上节课我们还没有教大家“求余”的操作,所以小甲鱼使用了“if year/400 == int(year/400)”这样的方式来“委曲求全”。
我看见老师原来也是这样的写的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-15 11:48:55 From FishC Mobile | 显示全部楼层
tianyafenger 发表于 2020-4-15 11:47
因为上节课我们还没有教大家“求余”的操作,所以小甲鱼使用了“if year/400 == int(year/400)”这样的方 ...

那怎么改呀
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-15 11:57:09 From FishC Mobile | 显示全部楼层
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)
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-4-15 11:59:38 From FishC Mobile | 显示全部楼层
岚冰1234 发表于 2020-4-15 11:45
因为你abcde在循环体内重新赋值了

而a1,b1,c1这些永远等于0,判断条件永远不成立,当循环次数到了后,就 ...

[quote]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)
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-14 15:51

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表