精华内容
下载资源
问答
  • 斐波那契额数列c语言
    千次阅读
    2021-08-19 09:31:55

    Fibonacci数列定义如下:

        第1,第2个数均为1,从第3个数开始,该数是其前面两个数之和。

        Fibonacci数列为:1,1,2,3,5,8,13,… 。

        编写递归函数,求Fibonacci数列的第n个数,并编写主函数,调用该递归函数,输出数列前20个数的值。

    int fibonacci(int sum);
    
    int main(void){
        int i;
        for(i = 1; i <= 20; i++) {
            printf("%d ",fibonacci(i));
        }
        return 0;
    }
    
    int fibonacci(int sum){
        if(sum==1 || sum==2) return 1;
        return fibonacci(sum-1)+fibonacci(sum-2);
    }
    更多相关内容
  • 用迭代的方法 寻找第N项的斐波那契数列 C语言下测试可用
  • 斐波那契数列是什么?

    一.斐波那契数列是什么?

    斐波那契数列(Fibonacci sequence),又称黄金分割数列,因数学家莱昂纳多·斐波那契(Leonardo Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……

    在数学上,斐波那契数列以如下被以递推的方法定义:F(0)=0,F(1)=1, F(n)=F(n - 1)+F(n - 2)(≥ 2,∈ N*)

    大致就是每一项都等于前两项之和的数列

    二. 实现斐波那契数列的两种方式

    1. 递归实现

    通过斐波那契数列的定义可以发现规律是:F(n) = F(n-1)+F(n-2),但前两项都是1

    代码:

    #include <stdio.h>
    int fib(int input){
    	if (input <= 2) {
    		return 1;//前两项都为1,所以直接返回1即可
    	}
    	return fib(input - 1) + fib(input - 2);
    }
    void main() {
    	int input = 0;
    	scanf("%d",&input);
    	printf("第%d位斐波那契数为:%d",input,fib(input));
    }

    运行结果:

    d6de6d471e234543b36880288ca9be57.png

    图解:

    c273d83e83d24c48b7d1911d9e82c32c.png

    注意:当输入的数较大时就会特别慢,原因是出现了很多的不必要的重复计算,极大的影响了计算效率

     2. 循环实现(简单高效)

    2.1 for循环实现

    代码:

    #include <stdio.h>
    int fib(int input) {
    	int f1 = 1, f2 = 1, f3 = 1;
    	for (int i = 2; i < input;i++) {
    		f3 = f1 + f2;
    		f1 = f2;
    		f2 = f3;
    	}
    	return f3;
    }
    void main() {
    	int input = 0;
    	scanf("%d",&input);
    	printf("第%d位斐波那契数为:%d",input,fib(input));
    }

    2.2 while循环实现

    代码:

    #include <stdio.h>
    int fib(int input) {
    	int f1 = 1, f2 = 1, f3 = 1;
    	while (input > 2) {
    		f3 = f1 + f2;
    		f1 = f2;
    		f2 = f3;
    		input--;
    	}
    	return f3;
    }
    void main() {
    	int input = 0;
    	scanf("%d",&input);
    	printf("第%d位斐波那契数为:%d",input,fib(input));
    }

    斐波那契数列的实现方法有递归和循环,但通过对比能看出来,递归过程中产生很多了多余的计算,使得递归算法的时间复杂度很大,所以我们更常用循环的方法实现。


    关于C语言实现斐波那契数列的讲解到这里就结束了,如果有什么不对的地方欢迎在评论区指正,谢谢支持~

    展开全文
  • 斐波那契数列C语言

    千次阅读 2022-05-04 21:52:39
    1.斐波那契数列是指这样一个数列:1,1,2,3,5,8,13,21,34,55,89..... 这个数列从第3项开始,每一项都等于前两项之和。 2.代码实现 #include<stdio.h> #define N 30 //宏定义,定义了fib这个数组...

    1.斐波那契数列是指这样一个数列:1,1,2,3,5,8,13,21,34,55,89.....

    这个数列从第3项开始,每一项都等于前两项之和。

    主要思想:利用数组去实现。

    2.代码实现

    #include<stdio.h>
    #define N 30     //宏定义,定义了fib这个数组的长度 
    int main()
    {
    	int i,n; 
    	int fib[N] = {0,1,1};   //不用下标为0,从下标1开始。因为数组的下标是从0开始的。 
    	do
    	{
    		printf("请输入n的值:");
    		scanf("%d", &n); 
    	 }while(n<0 || n>N);       //采用do... while语句用来控制输入的合法性 
        for(i=3; i<=n; i++)    //从下标3开始计算
        {
        	fib[i] = fib[i-1] + fib[i-2];
    	}
        printf("这个斐波那契数列如下所示:\n");
    	for(i=1; i<=n; i++)
    	{
    		printf("%6d", fib[i]);      
    		if(i%5 == 0)            //每行输入5个数 
    		    printf("\n");
    	}
    	return 0;
    }

    3.运行结果

    展开全文
  • 课程的随堂作业,C语言的,用dev就能运行,萌新代码,勿喷,仅仅帮助不想写作业的朋友方便一下,反正老师也不会仔细检查的
  • C语言斐波那契数列

    万次阅读 2021-11-26 10:33:27
    斐波那契数列Fibonacci sequence),又称黄金分割数列,因数学家莱昂纳多·斐波那契(Leonardo Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、...

             斐波那契数列(Fibonacci sequence),又称黄金分割数列,因数学家莱昂纳多·斐波那契(Leonardo Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……。在数学上,斐波那契数列以如下被以递推的方法定义:F(1)=1, F(2)=1, F(n)=F(n - 1)+F(n - 2)(≥3,∈ N*),我们用C语言来实现它: 

    最不适用于用递归函数的经典题目:斐波那契数列

    第一种 递归法:斐波那契数列的规律为:Fibon(n) = Fibon(n-1) + Fibon(n-2)  

     我们先看一个求位数少的(代码1),这个很快就算出来了。再看一个位数多的(代码2)

    代码1:

    #include<stdio.h>
    int Fibon(int n)
    {
       if (n == 1|| n == 2)
       {
    	   return 1;
       }
       else
       {
    	   return Fibon(n-1)+ Fibon(n-2);
       }
    }
    int main()
    {
    	for (int i = 1; i <= 10; i++)
    	{
    		printf("%d ", Fibon(i));
    	}
    	return 0;
    }

    调试结果:

    代码2:

    #include<stdio.h>
    int Fibon(int n)
    {
       if (n == 1|| n == 2)
       {
    	   return 1;
       }
       else
       {
    	   return Fibon(n-1)+ Fibon(n-2);
       }
    }
    int main()
    {
    	for (int i = 1; i <= 40; i++)
    	{
    		printf("%d ", Fibon(i));
    	}
    	return 0;
    }

    调试结果如下:

    此时的结果就出的很慢,原因是什么?因为它超出堆栈的默认1MB的大小所以就结果出的很慢。

    对于斐波那契数列我们最好还是使用for循环来写。

    第二种 for 循环:(简单高效)

    #include<stdio.h>
    int Fibon1(int n)
    {
    	int f1 = 1;//1//2
    	int f2 = 1;//2//3
    	int f3 = 1;//2//3
    
    	for(int i=2; i<n; i++)
    	{
    		f3 = f1+f2;
    		f1 = f2;
    		f2 = f3;
    	}
    	return f3;
    }
    int main()
    {
    	for (int i = 1; i <= 10; i++)
    	{
    		printf("%d ", Fibon1(i));
    	}
    	return 0;
    }

    调试结果如下:只要求的斐波那契数超过40,for循环都可一瞬,而递归的方法就会慢很多。

    展开全文
  • C语言 斐波那契数列

    2022-06-10 20:07:58
    斐波那契数列Fibonacci sequence),又称黄金分割数列,因数学家莱昂纳多·斐波那契(Leonardo Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、...
  • 斐波那契数列C语言实现)

    千次阅读 2022-03-23 18:32:13
    斐波那契数列是一组第一位和第二位为1,从第三位开始,后一位是前两位和的一组递增数列, 像这样的:1、1、2、3、5、8、13、21、34、55… #include <stdio.h> int main() { int num1,num2,num3,row; int i; ...
  • k阶斐波那契数列——c语言

    千次阅读 2022-01-31 19:27:45
    k阶斐波那契数列: 前k-1项为0,第k-1项为1,此后每一项为前k项的和。 当k为1时,斐波那契数列为恒为1的数列。 当k为2时,即位“斐波那契数列”. 以下为真实实现代码 #include<stdio.h> #include<stdlib.h&...
  • 基础入门的c语言编程题
  • 斐波那契数列_详解(C语言)

    万次阅读 多人点赞 2020-05-06 15:25:56
    斐波那契数列Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、...
  • 斐波那契数列c语言函数

    千次阅读 2021-05-21 03:21:03
    (C语言)用递归方法编写CSS布局HTML小编今天和大家分享斐波那契数列的函数用递归方法编写CSS布局HTML小编今天和大家分享斐波那契数列的函数,返回值为长整型。斐波那契数列的#include long func(long n) { if(n==0||n...
  • C语言 输出斐波那契数列

    万次阅读 多人点赞 2021-03-26 12:31:28
    斐波那契数列(Fibonacci sequence),指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、……在数学上,斐波那契数列以如下被以递推的方法定义:F(0)=0,F(1)=1, F(n)=F(n-1)+F(n-2)(n ≥ 2,n ∈ N*) ...
  • 最简单斐波那契数列输出C语言

    千次阅读 多人点赞 2020-07-06 20:05:39
    斐波那契数列的核心是它的递增推算代码: 废话不多说,直接上代码: #include<stdio.h> /*斐波那契数列*/ int main() { int a,b; long long int n,i=1,j=1; printf("请输入数列长度\n"); scanf("%d",&...
  • 主要介绍了C语言实现Fibonacci数列递归,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • C语言递归算法(斐波那契数列

    千次阅读 2022-04-15 10:15:01
    三、递归的应用(斐波那契数列) #define _CRT_SECURE_NO_WARNINGS //忽略安全检测,不然使用scanf会报错 #include int Fib(int n) { if (n) { return 1; } else { return (Fib(n - 1) + Fib(n - 2)); } } int main...
  • C语言实现斐波那契数列

    千次阅读 2021-03-26 12:48:56
    #斐波那契数列,指的是这样一个数列:1、1、2、3、5、8、13、……它有如下特点:第一,第二项为 1,从第三项开始,每一项为前两项数之和,即: F1 = 1 (n = 1) F2 = 1 (n =2) F3 = F_(n-1)+F_(n-2) (n ≥ 3) … 此...
  • 斐波那契数列指的是这样一个数列:1、1、2、3、5、8、13、21、34、……在数学上,斐波那契数列以如下被以递推的方法定义:F(0)=1,F(1)=1,F(n)=F(n - 1)+F(n - 2)(n≥ 2,n∈ N*。
  • c语言---c语言中的斐波那契数列程序

    千次阅读 热门讨论 2022-03-12 14:00:57
    c语言中的斐波那契数列编程问题(兔子繁衍、走台阶)递归思想
  • C语言实现斐波那契数列

    万次阅读 多人点赞 2019-01-10 19:56:55
    C语言实现斐波那契数列  C语言对应代码如下:   #include&lt;stdio.h&gt; int fun(int x){ if(x == 1)return 1; if(x == 2) return 1; return fun(x-1) + fun(x-...
  • C语言斐波那契额数列

    2022-06-07 00:13:26
    C 语言实例 斐波那契数列指的是这样一个数列 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,1597,2584,4181,6765,10946,17711,28657,46368........ 这个数列从第3项开始,每一项都等于前...
  • 斐波那契数列C语言编程)

    千次阅读 2019-10-07 15:22:26
    费氏数列:斐波那契数列Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13...
  • C语言用递归和迭代实现斐波那契数列

    千次阅读 多人点赞 2022-04-24 22:33:45
    今天在作业题中看见了斐波那契数列(Fibonacci数列),相信大家或多或少都听过,具体如上图,实际上用C语言打印出来后也蛮有意思的,故而想在这里和大家一起分享! 作者:Shining-point 作者的博客主页:Shining-...
  • 入门训练 Fibonacci数列 问题描述 Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1。 当n比较大时,Fn也非常大,现在我们想知道,Fn除以10007的余数是多少。 输入格式 输入包含一个整数n。 输出格式 输出一行...
  • 递归法实现:用递归法计算Fibonacci(斐波拉契)数列的第n项。
  • c语言斐波那契数列

    2013-12-02 21:41:13
    使用递归和非递归的算法,分别计算斐波那契数列,并利用系统时间函数对每一个n值的两种计算方法计时
  • 斐波那契数列(递推) 记忆化搜索---------数组充当备忘录 #include <stdio.h> int Fib(int n); int FibSum(int n); int main() { int n; while(1) { printf("请问您需要求前几项呢?"); scanf("%d", &...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 11,257
精华内容 4,502
关键字:

斐波那契额数列c语言