小甲鱼的这段程序的确有问题
低位需要向高位借 的这一段 if 程序的问题我帮你修改了。做了注释
懂了,谢谢你 sunrise085 发表于 2020-8-24 19:58
小甲鱼的这段程序的确有问题
低位需要向高位借 的这一段 if 程序的问题我帮你修改了。做了注释
老师我有个疑问,上一位先减一在与0对比判断能不能借位和直接与1对比判断有什么区别吗 sunrise085 发表于 2020-8-24 19:58
小甲鱼的这段程序的确有问题
低位需要向高位借 的这一段 if 程序的问题我帮你修改了。做了注释
同问{:10_254:} 开心小傻猪 发表于 2020-8-29 22:18
老师我有个疑问,上一位先减一在与0对比判断能不能借位和直接与1对比判断有什么区别吗
#低位不够,向高位借
if temp<0:
# 测试高位是否有得“借”,没得借的话向再高位借......
i=1
while self.lasted<1:
self.lasted+=self.borrow-1
self.lasted-=1
i+=1
看这几行代码,这是原来的代码,给你讲一下
假设,现在self.lasted赢计算出来前几位了假设是。
现在计算最后一位 秒 。index=5,得到的temp是-2,小于0,需要借位,进入if语句块,i=1,
第一次判断while循环
while判断它的上一位,也就是现在数组中的最后一个,为0,小于1,那么需要进入while循环,向再上一位借位
执行 self.lasted+=self.borrow-1,lasted列表的最后一位原来为0,变为 0+60-1=59,这一位是正常的没问题。
然后执行 self.lasted-=1,lasted列表的倒数第二位自减1,原来为1,变成了0
i+=1,i=2
第二次判断while循环
while判断它的上一位,也就是现在数组中的倒数第二个,为0,小于1,那么需要进入while循环,向再上一位借位
执行 self.lasted+=self.borrow-1,lasted列表的最后一位原来为0,变为 0+24-1=23,这一位出错了吧,正常情况下原来这里是1,借一下之后变为0,然后就不用再借了,但是while的条件是小于1就继续循环,所以就再借了。
然后执行 self.lasted-=1,lasted列表的倒数第二位自减1,原来为1,变成了0
i+=1,i=3
第三次判断while循环条件,和第二次一样,也会出错
也就是说若借位的时候,遇到了1,那么就会借位出错 sunrise085 发表于 2020-8-29 23:55
看这几行代码,这是原来的代码,给你讲一下
假设,现在self.lasted赢计算出来前几位了假设是
谢谢老师的解答 昨非 发表于 2020-8-29 22:28
同问
看楼上 sunrise085 发表于 2020-8-30 12:28
看楼上
嗯,谢谢 学到了 算了好久
页:
1
[2]