Menu Close

c语言中的斐波那契(fibonacci)数列的编写

C中的斐波那契数列:对于斐波那契数列,下一个数字是前两个数字的和,例如0、1、1、2、3、5、8、13、21等。斐波那契数列的前两个数字为0和1。

编写fibonacci系列程序的方法有两种:

  • 斐波那契数列,无递归
  • 斐波那契数列使用递归

1. 无递归C语言的斐波那契数列

让我们看一下c中不利用递归的fibonacci系列程序。

#include<stdio.h>
int main()
{
   int n1=0, n2=1, n3, i, number;
   printf("Enter the number of elements:");
   scanf("%d", &number);
   printf("How many numbers print:%d\n",number);
   printf("\n%d %d", n1, n2);//printing 0 and 1
  for(i=2;i<number;++i)//loop starts from 2 because 0 and 1 are already printed
  {
     n3=n1+n2;
     printf(" %d", n3);
     n1=n2;
     n2=n3;
   }
    return 0;
}

结果

Enter the number of elements:25
How many numbers print:25

0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181 6765 10946 17711 28657 46368

2. Fibonacci系列在C中使用递归

我们来看一下使用递归的c中的fibonacci系列程序。

#include<stdio.h>
void printFibonacci(int n){
     static int n1=0, n2=1, n3;
     if(n>0){
     n3 = n1 + n2;
     n1 = n2;
     n2 = n3;
     printf("%d ", n3);
     printFibonacci(n-1);
    }
}

int main(){
    int n;
    printf("Enter the number of elements: ");
    scanf("%d", &n);
    printf("Fibonacci Series: ");
    printf("%d %d ", 0, 1);
    printFibonacci(n-2);//n-2 because 2 numbers are already printed
    return 0;
}
Enter the number of elements: 19
Fibonacci Series: 0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584

 

除教程外,本网站大部分文章来自互联网,如果有内容冒犯到你,请联系我们删除!

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

Leave the field below empty!

Posted in C语言习题集

Related Posts