这是我到目前为止所考虑的,它适用于数组中的2个元素。 数组中的元素是要插入连续分数的变量。
double continuedFraction(int a[], int size)
{
double fraction = a[0];
for(int i = 1; i < size; i++)
{
fraction += (double)1/(double)a[i];
}
return fraction;
}
btw我没有使用递归我需要能够得到连续的分数结果。
答案 0 :(得分:0)
对于第一次迭代,得到(a0 + 1 / a1)。在进一步的迭代中,你的代码不断添加给定数字的倒数,即(a0 + 1 / a1)+(1 / a2)+(1 / a3)+ ...
你理想需要的是+ ... 1 /(a2 + 1 /(a1 + 1 / a0))...)
double continuedFraction(int a[], int size)
{
double fraction = a[0];
for(int i = 1; i < size; i++)
{
fraction = a[i] + (1/fraction);
}
return fraction;
}
如果你想要反过来,a0 + 1 /(a1 + 1 /(a2 + 1 / a3 + ...))...) 你可以运行从array_size-1到0的循环