Python 上两个数的最大公约数
Maximum common divider for two numbers on Python
我需要帮助来检查一些代码:
def mcd(n1,n2):
mxcd = 0
for i in range(1,n1):
f = n1 % i
for j in range(1,n2):
g = n2 % j
if (f == 0 and g == 0 and f == g):
mxcd = f
else:
mxcd = "No hay comun divisor"
return mxcd
我有问题,因为它似乎从来没有进入第一个 if
,它总是进入 else
,我试过更改缩进顺序,从中取出 if
第二个 for
但它不起作用。如果有人能提供帮助那就太好了。
您可以先打印出 f
和 g
的状态,看看为什么在 if
语句中没有发生任何事情。
def mcd(n1,n2):
mxcd = 0
for i in range(1,n1):
f = n1 % i
print('i is {}, f is {}'.format(i, f))
for j in range(1,n2):
g = n2 % j
print('\n j is {}, g is {}'.format(j, g))
if (f == 0 and g == 0 and f == g):
mxcd = f
else:
mxcd = "No hay comun divisor"
return mxcd
运行 像 mcd(2,4)
这样的东西让你知道很多:
i is 1, f is 0
j is 1, g is 0
j is 2, g is 0
j is 3, g is 1
'No hay comun divisor'
你做打开if
语句,用类似的技巧就可以看到:
def mcd(n1,n2):
mxcd = 0
for i in range(1,n1):
f = n1 % i
for j in range(1,n2):
g = n2 % j
if (f == 0 and g == 0 and f == g):
print('hello')
mxcd = f
else:
mxcd = "No hay comun divisor"
return mxcd
> mcd(4,8)
hello
hello
hello
hello
hello
hello
'No hay comun divisor'
从那里开始,您需要纠正一些问题才能获得正确答案,但我会把这个练习留给您:)
你的if
语句逻辑不对。
你想要:
if (f==0 and g==0 and i==j):
mxcd = i
你知道这是为什么吗?
此功能还有其他一些问题,但这就是 if
无法正常工作的原因。
我需要帮助来检查一些代码:
def mcd(n1,n2):
mxcd = 0
for i in range(1,n1):
f = n1 % i
for j in range(1,n2):
g = n2 % j
if (f == 0 and g == 0 and f == g):
mxcd = f
else:
mxcd = "No hay comun divisor"
return mxcd
我有问题,因为它似乎从来没有进入第一个 if
,它总是进入 else
,我试过更改缩进顺序,从中取出 if
第二个 for
但它不起作用。如果有人能提供帮助那就太好了。
您可以先打印出 f
和 g
的状态,看看为什么在 if
语句中没有发生任何事情。
def mcd(n1,n2):
mxcd = 0
for i in range(1,n1):
f = n1 % i
print('i is {}, f is {}'.format(i, f))
for j in range(1,n2):
g = n2 % j
print('\n j is {}, g is {}'.format(j, g))
if (f == 0 and g == 0 and f == g):
mxcd = f
else:
mxcd = "No hay comun divisor"
return mxcd
运行 像 mcd(2,4)
这样的东西让你知道很多:
i is 1, f is 0
j is 1, g is 0
j is 2, g is 0
j is 3, g is 1
'No hay comun divisor'
你做打开if
语句,用类似的技巧就可以看到:
def mcd(n1,n2):
mxcd = 0
for i in range(1,n1):
f = n1 % i
for j in range(1,n2):
g = n2 % j
if (f == 0 and g == 0 and f == g):
print('hello')
mxcd = f
else:
mxcd = "No hay comun divisor"
return mxcd
> mcd(4,8)
hello
hello
hello
hello
hello
hello
'No hay comun divisor'
从那里开始,您需要纠正一些问题才能获得正确答案,但我会把这个练习留给您:)
你的if
语句逻辑不对。
你想要:
if (f==0 and g==0 and i==j):
mxcd = i
你知道这是为什么吗?
此功能还有其他一些问题,但这就是 if
无法正常工作的原因。