加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

最大公约数--常看常新

(2022-04-01 09:53:48)
分类: 研究-学习
关于最大公约数的程序方法,我之前关注过多次,可自己学习编程的基础太差,当初看明白了过段时间又忘记了,导致这个知识在自己身上没有真正的“内化”。刚才整理了一下电脑桌面,看到了前几天编写的求最大公约数的程序,发现和昨天的相同功能的程序结合起来,自己还有认识上的“断层”:
有两种实现方法,一个是两两相减(大减小),差替代大的值,再两两相减,差替代大数的值...直至两者相等
a=int(input("第一个数:"))
b=int(input("第一个数:"))
while a!=b:
    if a
        a,b=b,a
    a=a-b
print(a)
第二种方法,辗转相除法(一轮运算后,除数替代被除数,余数替代除数,直至余数等于0)
#-----办法1-------
a=int(input("第一个数:"))
b=int(input("第一个数:"))
#while b>0:
while b!=0:
    a,b=b,a % b   #python特有的方法,同时赋值
print(a)

#-----办法2-------
a=0
b=0
while a==0 or b==0:
    a=int(input("a="))
    b=int(input("b="))
if a
    a,b=b,a

'''
#while a%b >0:      
   a=b     
  b=a%b       #此处不能形成循环,应该使用同时赋值的方法,。此时循环条件为b>0,最大公约数是a
#print("最大公约数:",b)  #不能形成多次循环    
'''
n=a%b
while n>0:
    a=b
    b=n
    n=a%b         #此中采用的传统编程语言的方法,逐个替换
print("最大公约数:",b)











0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有