鱼C论坛

 找回密码
 立即注册
12
返回列表 发新帖
楼主: chong0918

[已解决]第44课课后习题0,设置定时器借位问题

[复制链接]
 楼主| 发表于 2020-8-24 20:33:39 | 显示全部楼层
sunrise085 发表于 2020-8-24 19:58
小甲鱼的这段程序的确有问题
低位需要向高位借 的这一段 if 程序的问题我帮你修改了。做了注释

懂了,谢谢你
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-29 22:18:45 | 显示全部楼层
sunrise085 发表于 2020-8-24 19:58
小甲鱼的这段程序的确有问题
低位需要向高位借 的这一段 if 程序的问题我帮你修改了。做了注释

老师我有个疑问,上一位先减一在与0对比判断能不能借位和直接与1对比判断有什么区别吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-29 22:28:09 | 显示全部楼层
sunrise085 发表于 2020-8-24 19:58
小甲鱼的这段程序的确有问题
低位需要向高位借 的这一段 if 程序的问题我帮你修改了。做了注释

同问
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-29 23:55:00 | 显示全部楼层
开心小傻猪 发表于 2020-8-29 22:18
老师我有个疑问,上一位先减一在与0对比判断能不能借位和直接与1对比判断有什么区别吗
 #低位不够,向高位借
            if temp<0:
                # 测试高位是否有得“借”,没得借的话向再高位借......
                i=1
                while self.lasted[index-i]<1:
                    self.lasted[index-i]+=self.borrow[index-i]-1   
                    self.lasted[index-i-1]-=1     
                    i+=1
看这几行代码,这是原来的代码,给你讲一下
假设,现在self.lasted赢计算出来前几位了假设是[9,5,1,1,0]。
现在计算最后一位 秒 。index=5,得到的temp是-2,小于0,需要借位,进入if语句块,i=1,

第一次判断while循环
while判断它的上一位,也就是现在数组中的最后一个,为0,小于1,那么需要进入while循环,向再上一位借位
执行 self.lasted[index-i]+=self.borrow[index-i]-1  ,lasted列表的最后一位原来为0,变为 0+60-1=59,这一位是正常的没问题。
然后执行 self.lasted[index-i-1]-=1  ,  lasted列表的倒数第二位自减1,原来为1,变成了0
i+=1,i=2

第二次判断while循环
while判断它的上一位,也就是现在数组中的倒数第二个,为0,小于1,那么需要进入while循环,向再上一位借位
执行 self.lasted[index-i]+=self.borrow[index-i]-1  ,lasted列表的最后一位原来为0,变为 0+24-1=23,这一位出错了吧,正常情况下原来这里是1,借一下之后变为0,然后就不用再借了,但是while的条件是小于1就继续循环,所以就再借了
然后执行 self.lasted[index-i-1]-=1  ,  lasted列表的倒数第二位自减1,原来为1,变成了0
i+=1,i=3

第三次判断while循环条件,和第二次一样,也会出错

也就是说若借位的时候,遇到了1,那么就会借位出错
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-30 11:37:04 | 显示全部楼层
sunrise085 发表于 2020-8-29 23:55
看这几行代码,这是原来的代码,给你讲一下
假设,现在self.lasted赢计算出来前几位了假设是[9,5,1,1, ...

谢谢老师的解答
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-30 12:28:27 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-8-30 12:31:11 | 显示全部楼层

嗯,谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-20 15:06:56 | 显示全部楼层
学到了 算了好久
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-11 11:57

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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