【发布时间】:2016-03-01 18:47:27
【问题描述】:
#include <stdio.h>
int fibonacci(int n) {
int count, n1 = 0, n2 = 1, fib = 0;
printf("Given number: ");
scanf("%d", &n);
count = 0;
while (count < n) {
fib = n1 + n2;
n1 = n2;
n2 = fib;
++count;
if (n > fib)
printf("%d ", fib);
}
return 0;
}
int main() {
int szam;
fibonacci(szam);
return 0;
}
我已经走到这一步了,我只是不知道如何计算数字。
例如:
输入:10
输出:1 2 3 5 8
但它应该是:
在:10
输出:5
【问题讨论】:
-
你的标题是错误的。您是指小于 N 的斐波那契数吗?
-
也许在循环之后打印
count,而不是在循环内打印fib? -
提示:斐波那契数增长非常快。如果 N 的范围是有界的,则使用它。
-
如果我在循环后打印计数,我只会得到给定的数字
-
@TamásSándor 每次您在循环中
printf()时,您的数字计数都会增加......所以增加一个新的计数器而不是在那里调用printf()(并调用@987654330 @ 之后显示新的计数器)