【问题标题】:Generating fibonacci number is C生成斐波那契数是 C
【发布时间】:2020-02-15 12:18:56
【问题描述】:

我在 C 中练习数组。我找到了下面提到的代码。


int main(void)
{
    int  numbers[10] = { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
    int  i, j;

    **for (j = 0;  j < 10;  ++j)
        for (i = 0;  i < j;  ++i)
            numbers[j]  = numbers[j] +numbers[i];**

    for (j = 0;  j < 10;  ++j)
        printf("%i ", numbers[j]);

    printf("\n");

    return 0;
}

我知道这是一个愚蠢的问题。如果有人帮助我理解粗体标记的 for 循环,我将不胜感激。提前致谢。

【问题讨论】:

  • Tihis 不是斐波那契数列,您只是将值加倍到下一个数组位置。
  • 无论你在哪里“找到”这段代码,如果他们声称结果是斐波那契数列,他们就是在撒谎。
  • 我在 Stephen G. Kochan 的一本名为 Programming in C 的书的练习课上找到了这段代码。这个练习只是对输出进行假设。在以下链接github.com/cdude996/Programming-in-C/blob/master/chapter06/… 中,该系列被称为斐波那契。

标签: c arrays fibonacci


【解决方案1】:
for (j = 0;  j < 10;  ++j)
    for (i = 0;  i < j;  ++i)
        numbers[j]  = numbers[j] +numbers[i];

上述循环将针对数组的特定位置,并将所有数字从第 0 个位置一一添加到选定位置。

最终您不会生成斐波那契数列。


j =0
       1, 0, 0, 0, 0, 0, 0, 0, 0, 0

j = 1
       1, 1, 0, 0, 0, 0, 0, 0, 0, 0

j = 2
       1, 1, 2, 0, 0, 0, 0, 0, 0, 0

j = 3
       1, 1, 2, 4, 0, 0, 0, 0, 0, 0

j = 4
       1, 1, 2, 4, 8, 0, 0, 0, 0, 0

...so on

【讨论】:

    猜你喜欢
    • 2011-12-18
    • 2015-04-25
    • 1970-01-01
    • 2017-11-13
    • 2013-02-24
    • 2011-04-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多