1.辗转相除法求两个整数的最大公约数(log用来记录运算过程,可删除)
import math
def rollDivision(f1,f2,log):
if(isinstance(f1,int) and isinstance(f2,int)):
if f2>f1:
temp=f1
f1=f2
f2=temp
elif f1==f2:
return f2
else:
pass
p=math.floor(f1/f2)
r=f1-f2*p
log.append([f1,f2,p,r])
if r!=0:
result=rollDivision(f2,r,log)
else: #r==
result=f2
return result
else:
return 'input var type error'
跳出循环条件是确定的,也可以不用递归,使用while循环:
def rollDivision(f1,f2,log):
if(isinstance(f1,int) and isinstance(f2,int)):
if f2>f1:
temp=f1
f1=f2
f2=temp
elif f1==f2:
return f2