22课后 递归欧几里求最大公约数 求助
这是我的代码:#递归:欧几里得法求最大公约数
def zdgys(x,y):
if x%y==0:
return y
else:
r=x%y
b=y%r
return zdgys(b,r)
X=input('【求最大公约数】\n请输入第一个数:')
Y=input('请输入第一个数:')
print(zdgys(X,Y))
运行的时候总是跳出这句话
line 3, in zdgys
if x%y==0:
TypeError: not all arguments converted during string formatting
翻译了下(类型错误:并非所有在字符串格式设置期间转换的参数),但是不明白,请问该怎么改求解答!
先谢谢回答的大佬哦{:9_228:} 你好歹得用int转换一下吧,直接拿字符串取余。。。
def zdgys(x,y):
if x%y==0:
return y
else:
r=x%y
b=y%r
return zdgys(b,r)
X=int(input('【求最大公约数】\n请输入第一个数:'))
Y=int(input('请输入第一个数:'))
print(zdgys(X,Y)) qiuyouzhi 发表于 2020-4-21 15:37
你好歹得用int转换一下吧,直接拿字符串取余。。。
怪不得呢,打扰了{:9_230:}
页:
[1]