我需要写一个recursive function
,它接受一个表示广义连分数的列表L
(奇数长度),并返回相应的有理数
列表L
总是奇数的原因是需要用连分数创建有理数
L[0] + L[1]/(L[2] + L[3]/L[....]))
我把它看作两个列表a,b。基本上在这种情况下,a是L[偶数],b是L[奇数]
我的基本情况是在最后3分钟
if n == 3: #base case
return L[0] + (L[1] / L[2])
我不知道如何推进递归中的分子和分母。 我一直在尝试(GCF2R是函数)(L是列表)(n=len(L))
if n > 3:
return L[0] + (L[n-2] / GCF2R(L[0:n]))
但是由于递归只发生在分母中,分子不会随着每次递归而改变
我知道我错过了一些基本步骤。非常感谢您对我的帮助
如果你看广义连分数的形式,你可以看到子结构:
基本上,GCF要么是整数,要么是形式为
a + b/c
的表达式,其中a
和b
是整数,c
本身就是GCF由此,递归自然如下:
删除前两个元素,然后在其余元素上递归
我想你应该把这些从末端剥掉,而不是从前面剥掉:
我想如果你通过了长度,你就不需要每次都剪一个新的列表:
相关问题 更多 >
编程相关推荐