我正在尝试写斐波那契数列的前10个术语。我觉得自己是对的,但我似乎不太了解实际代码(用C语言编写)。

float fib = 0;
const float minn = 1;
const float maxn  = 20;
float n = minn;
while (n <= maxn);{
n = n + 1;
printf (" %4,2f", fib);
fib = (n - 1) + (n - 2);
}

最佳答案

对于斐波那契数列,值f(n)= f(n-1)+ f(n = 2)。前三个值定义为0、1、1。

斐波那契数列是整数值(数学整数,不一定是C语言值)的序列。考虑使用int或long作为斐波那契值。 float是毫无价值的,只会增加不必要的开销。

在计算斐波那契数列时,您必须存储前两个值以获得下一个值。

您想要10个斐波那契值。您已经知道前三个值,因此请打印这些值,然后计算下七个值。

7个值表示一个迭代7次的循环。它与返回的斐波那契值的最大值无关,只是与您要打印多少个值无关。

做这样的事情:

printf("0, 1, 1");

int currentValue;
int valueN1 = 1;
int valueN2 = 1;

for (int counter = 1; counter <= 7; ++counter)
{
    currentValue = valueN1 + valueN2;
    printf(", %d", currentValue);

    valueN2 = valueN1;
    valueN1 = currentValue;
}

关于c - C语言中的第一个真实程序:斐波那契数列,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18857526/

10-11 18:58