我正在尝试写斐波那契数列的前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/