小于给定n的斐波那契数的个数 #包括 整数斐波那契(整数n){ 整数计数,n1=0,n2=1,fib=0; printf(“给定编号:”); scanf(“%d”和“&n”); 计数=0; while(计数fib) printf(“%d”,fib); } 返回0; } int main(){ 内森; 斐波那契(szam); 返回0; }

小于给定n的斐波那契数的个数 #包括 整数斐波那契(整数n){ 整数计数,n1=0,n2=1,fib=0; printf(“给定编号:”); scanf(“%d”和“&n”); 计数=0; while(计数fib) printf(“%d”,fib); } 返回0; } int main(){ 内森; 斐波那契(szam); 返回0; },c,count,fibonacci,C,Count,Fibonacci,我已经走了这么远,我只是不知道怎么数数。 例如: 输入:10 输出:12358 但它应该是: 输入:10 输出:5代码中的停止条件不正确:在计算了n斐波那契数后停止,而不是在计算了大于n的斐波那契数时停止 以下是更正的版本: #include <stdio.h> int fibonacci(int n) { int count, n1 = 0, n2 = 1, fib = 0; printf("Given number: "); scanf("%d", &a

我已经走了这么远,我只是不知道怎么数数。 例如:
输入:
10

输出:
12358

但它应该是:
输入:
10


输出:
5

代码中的停止条件不正确:在计算了
n
斐波那契数后停止,而不是在计算了大于
n
的斐波那契数时停止

以下是更正的版本:

#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;
}
#包括
整数计数\u斐波那契(无符号长整数n){
整数计数=0;
无符号长n1=1,n2=1,fib=1;
while(fib
它为
10
的输入打印
5
,因为您的斐波那契序列是:
123558…

但是标准序列通常被定义为
1 2 3 5 8…
,它应该返回
6
。通过将初始状态更改为
n1=0、n2=1、fib=1
可以获得此行为,添加了计算斐波那契数的变量fib\u count(未测试此…)

#包括
整数斐波那契(整数n)
{
int n1=0,n2=1,fib=0,fib\u计数;
printf(“给定编号:”);
scanf(“%d”和“&n”);
fib_计数=0;

虽然(fibonacci)你的标题错了。你是说fibonacci数小于N吗?可能在循环后打印
count
,不要在循环内打印
fib
?提示:fibonacci数增长非常快。如果N的范围有界,请使用它。如果我在循环后打印count,我只得到给定值number@Tam每次你
printf()
在循环中,您的数字计数会增加……因此,增加一个新计数器,而不是在那里调用
printf()
(然后调用
printf()
以显示新计数器)
#include <stdio.h>
int count_fibonacci(unsigned long long int n) {
    int count = 0;
    unsigned long long n1 = 1, n2 = 1, fib = 1;
    while (fib < n) {
        count++;
        fib = n1 + n2;
        n1 = n2;
        n2 = fib;
    }
    return count;
}

int main(void) {
    unsigned long long n = 0;
    printf("Given number: ");
    scanf("%llu", &n);
    printf("%d\n", count_fibonacci(n));
    return 0;
}
#include <stdio.h>

int fibonacci(int n)
{
  int n1=0, n2=1, fib=0, fib_count;
  printf("Given number: ");
  scanf("%d",&n);
  fib_count = 0;
  while (fib<n)
  {`

      fib=n1+n2;
      n1=n2;
      n2=fib;
      fib_count += 1;
      printf("%d ",fib);

  }
  printf("Fibonacci numbers smaller than %d : %d ",n, fib_count);
  return 0;
}

int main(){
int szam;
fibonacci(szam);
return 0;
}