用C语言实现斐波那契数列

闾丘博
2023-12-01

提示:斐波那契数列 

          1 1 2 3 5 8 13……


前言

本文将用普通变量和数组两组方式输出斐波那契数列前40个数,要求4个一行。


 

一、问题分析

   

  int f1=1;int f2=1;

让第一个数是f1,第二个数是f2,两两一组。

  共40个数,分成20组。

    1    1        2                                  3                                    ……    

    ⬆    ⬆        ⬆                                  ⬆

     f1   f2       f1=f1+f2=1+1=2          f2=f1+f2=2+1=3


 

二、代码

1.用普通变量实现斐波那契数列,并输出前40个数,要求4个一行。

(1)代码如下:

#include <stdio.h>
void main()
{
	int f1=1,f2=1;
	int i;
	for(i=1;i<=20;i++)
	{
		printf("%10d %10d",f1,f2);
		f1=f1+f2;
		f2=f1+f2;
		if(i%2==0)
			printf("\n");
	}
}

(2)思考:为什么4个一行输出却不是i%4呢?

             答:因为是两两一组。

 (3)运行结果:

         1         1         2         3
         5         8        13        21
        34        55        89       144
       233       377       610       987
      1597      2584      4181      6765
     10946     17711     28657     46368
     75025    121393    196418    317811
    514229    832040   1346269   2178309
   3524578   5702887   9227465  14930352
  24157817  39088169  63245986 102334155
Press any key to continue



 2.用数组保存斐波那契数列前40个数,4个一行

(1)代码如下:

#include <stdio.h>
void main()
{
	int f[40]={1,1},i;
	for(i=2;i<=39;i++)
		f[i]=f[i-1]+f[i-2];
	for(i=0;i<=39;i++)
	{
		printf("%10d",f[i]);
	    if((i+1)%4==0)
		printf("\n");
	}
}

(2)思考:为什么4个一行是(i+1)%4==0呢?

    答:因为数组下标从0开始,0 1 2 3是4个一组,4 5 6 7是4个一组,8 9 10 11是4个一组,

                        ⬆

                   i=3,i+1=4,4%4==0

(3)运行结果:

         1         1         2         3
         5         8        13        21
        34        55        89       144
       233       377       610       987
      1597      2584      4181      6765
     10946     17711     28657     46368
     75025    121393    196418    317811
    514229    832040   1346269   2178309
   3524578   5702887   9227465  14930352
  24157817  39088169  63245986 102334155
Press any key to continue



 

总结

文章主要讲述了用普通变量和数组实现斐波那契数列的方法,解释了如何实现4个一行输出结果。

 类似资料: