使用扩展的欧几里得算法: 我希望输出看起来像这样:
algo(700,440) = [20,-5,8]
algo(88,35) = [1,2,-5]
algo(35,88) = [1,2]
algo(-88,35) = [1,-5]
algo(88,-35) = [1,-5]
algo(0,777) = Error(algo): Invalid input num
但是我得到以下输出:
#enter code here
algo(700,440) = (20,8)
algo(88,35) = (1,-5)
algo(35,88) = (1,2)
algo(-88,35) = (-1,5)
algo(88,-35) = (1,5)
algo(0,777) = (777,1)
我的代码是:
def algo(a,b):
if a == 0:
return (b,1)
else:
g,y,x = algo(b % a,a)
return (g,x - (b // a) * y,y)
我对如何将值放入列表中感到困惑,并且在打印错误消息时遇到麻烦。每当我在第一个if情况下更改为打印语句时,都会收到错误消息。函数不需要递归,但是任何帮助将不胜感激!