续分数求解

时间:2014-05-08 21:51:53

标签: algorithm debugging loops formula continued-fractions

这是我到目前为止所考虑的,它适用于数组中的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我没有使用递归我需要能够得到连续的分数结果。

1 个答案:

答案 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的循环