Differences between revisions 1 and 4 (spanning 3 versions)
Revision 1 as of 2009-04-21 16:35:01
Size: 586
Editor: qingfeng
Comment:
Revision 4 as of 2009-04-21 16:44:41
Size: 607
Editor: qingfeng
Comment:
Deletions are marked like this. Additions are marked like this.
Line 3: Line 3:
'''个人工作日志''' '''用Python实现常见算法'''
Line 20: Line 20:
    r=m%n
    if r==0:return m/n
     return f(n,r)
    m,n=max(m,n),min(m,n)
    if n==0:return m
    return f(n,m%n)

用Python实现常见算法 -- ["qingfeng"] (Date(2009-04-21T16:35:01Z)) TableOfContents

求最大公约数

分析:求最大公约数的算法思想:
(1) 对于已知两数m,n,使得m>n; 
(2) m除以n得余数r; 
(3) 若r=0,则n为求得的最大公约数,算法结束;否则执行(4); 
(4) m←n,n←r,再重复执行(2)。 
例如: 求 m=14 ,n=6 的最大公约数. m n r 

代码:

   1 def f(m,n):
   2     m,n=max(m,n),min(m,n)
   3     if n==0:return m
   4     return f(n,m%n)
   5 f(14,6)

PythonAlgorithms (last edited 2009-12-25 07:12:49 by localhost)