如何在Java中整合整数数组,如Fibonacci系列

时间:2015-12-05 16:23:03

标签: java arrays

我在接受采访时被问到这个问题。请求我将整数数组加入像Fibonacci系列类型。

就像我们添加array[]={2,6,3,1}一样,输出应为31。

2 + 6 = 8,8 + 3 = 11,11 + 1 = 12,现在加8 + 11 + 12 = 31?

我怎样才能用Java做到这一点?

1 个答案:

答案 0 :(得分:1)

这很有趣!最简单的解决方案是使用嵌套的for并迭代加上前一个值。

然而,如果我们考虑一下,你的例子是线性的,不能用线性来完成吗?是的,它可以。所以我们现在知道我们必须只使用一个(嵌套)for。我们必须在您的示例{2,6}{2,6,3}{2,6,3,1}中跟踪我们一起添加的值,以便我们可以使用另一个Array尺寸小于输入Array的那个。

但是,我们不能直接添加它们吗?不是存储我们计算的每个值,而是存储前一个值和到目前为止的总和,结果:

public static int arrFibSum (int arr[]) {
    int sum = 0;

    for (int i = 0; i < arr.length-1; i++) {
        sum += sum + arr[i+1];
    }

    return sum;
}

需要Array,与您的{2,6,3,1}一样

  1. 将之前的值设置为上次计算的值。

  2. 根据前一个和下一个计算下一个值。

  3. 在此示例中,它打印出:31

    对于未来:尝试编写一些伪代码。您写下了一个示例,尝试将其写为通用,最后您已准备好开始实现它。

    我之所以尝试逐步编写流程是有原因的。

    根据Erik的评论更新。