《python语言程序设计》第5章 第16题有点难度的公约数 计算,利用循环。可能是for 也可能是while

2021-8-27惊标题心动魄的按完了领导家的路由器。骑着电单车返航了。接下来,今天的第2道。计算最大公约数题面! 看到题前面的*了吗!稍微有点难度

在这里插入图片描述

2021-8-27 15:47先找到欧几米得算法 学习一下计算公约数

20210828to20210829 两天想的就是如何解析。但没有100%。不过有20%也是好的

1、首先明确了一点。找出同时小于n1和n2共同的数d。
2、明确了一种以后看到题目的破解顺序,这一点很开心。

20210830我想到了用while True:

n1 = eval(input("Enter first integer: "))
n2 = eval(input("Enter second integer: "))
k = 0
gcd = 1
while True:
    k += 1
    if k < n1 and k < n2:
        gcd = k
		print(gcd)

如果n1=125 ,n2=2525,则gcd = 124,但不能高兴太早了!请看输出结果

在这里插入图片描述

不断的死循环。重复打印。因为并没有停止。那我是不是可以加个break呢好我加了哦!在这里插入图片描述### 结果竟然是1

2021年08月30日 11点55分

在这里插入图片描述

成功了我得到了最小数。接着我该如何从最小数里提取出n1和n2的最大公约数呢??请看我遇到的第一大问题

在这里插入图片描述

integer division or modulo by zero

虽然我现在还弄不明白他的翻译。但是有一点可以肯定这里有一个数是0,经过我的分析我最后发现了是d我在初始的时候就将0赋值给了d这就造成了现在的情况。所以我将d改为1.希望大家也要注意哦。

我成功了!!!先看一下我怎么发现的

在这里插入图片描述

这个“KeyboardInterrupt” 我解决了k 应该为1的问题后出现。此时的我鬼使神差的做了一个操作。而下面的结果就是这个题的解答。请看

在这里插入图片描述

成功了真的天哪。太棒了。3天终于攻克了它。虽然感觉分享还有不足。但是我成功了下面我在把原书中的另一个解题方法放一下。大家对比一下。一个是通过n1和n2共同的最小数d,然后不断-1,得出公约数,还有一个是从2开始一直累加得出公约数。

在这里插入图片描述

最后谢谢大家的观赏。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

电饭叔

谢谢各位兄弟们的关注,谢谢破费

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值