我正在从用户输入两个数字以获取GCD。
在
P.S。附上代码
def gcd(a,b):
if b==0:
return a
return gcd(a,a%b)
a = input("Enter first number: ")
b = input("Enter second number: ")
res = gcd(a,b)
print("GCD of {1} and {2} is {3}".format(a, b,res))
显示在的错误 第4行-返回gcd(a,a%b) 第9行-res = gcd(a,b)
TypeError:在字符串格式化期间并非所有参数都已转换
答案 0 :(得分:0)
存在三个问题:
算法错误。递归调用应为return gcd(b, a%b)
。
函数input()
返回一个字符串。因此,您需要使用int()
将结果转换为数字或整数。
format()
中的位置占位符从零开始。因此正确的占位符是{0}
,{1}
和{2}
固定代码为:
def gcd(a,b):
if b==0:
return a
return gcd(b, a%b)
a = int(input("Enter first number: "))
b = int(input("Enter second number: "))
res = gcd(a,b)
print("GCD of {0} and {1} is {2}".format(a, b, res))