开发者

C语言新手练习题之求第n个斐波那契数

目录
  • 前言
  • 一、思路
    • 1.非递归
    • 2.递归
  • 二、源代码以及运行截图
    • 非递归:
    • 递归:
  • 总结

    前言

    在C语言中,分别用递归和非递归两种方法实现求第n个斐波那契数

    一、思路

    首先分析一下关于斐波那契数android列的原理:

    第一个和第二个数都是1,之后的每个数都是前两个数之和,即:

    1,1,2,3,5,8,……

    1.非递归

    用到了循环相关的知识,

    当n>2的时候进入循环,将前两个数相加得到第三个数;

    当n<=2的时候跳出循环。

    2.递归

    观察斐波那契数列可以得到一个公式:

    C语言新手练习题之求第n个斐波那契数

    根据这个公式就能进行递归。当n>2的时候进行递归,当n = 1或npython = 2时返回1。

    二、源代码以及运行截图

    为了方便大家的交流和学习,我将程序源代码和运行截图放置在下方。

    非递归:

    源代码:

    #include编程客栈<stdio.h>
    //递归和非递归分别实现求第n个斐波那契数
    //非递归
    int main()
    {
    	int i = 1;
    	int j = 1;
    	int temp = 0;
    	int n = 0;
    	int fib = 0;
    	scanf("%d", &n);
    	while (n > 0)
    	{
    		if (n > 2)
    		{
    			temp = j;
    			j = i + j;
    			i = temp;
    		}
    		else 
    			fib = j;
    		n--;
    	}
    	printf("%d", fib);
    	return 0;
    }

    运行截图:

    C语言新手练习题之求第n个斐波那契数

    递归:

    源代码:

    //递归
    int Fib(int n)
    {
    	if (n > 2)
    	{
    		return Fib(n - 1) + Fib(n - 2);
    	}
    	else 
    	{
    		return 1;
    	}
    }
    int main()
    {
    	int n = 0;
    	scanf("%d", &n);
    	while (1)
    	{
    		if (n <=开发者_自学开发 0)
    		{
    			printf("输入错误请重新输入:>");
    		}
    		else
    		{
    			printf("%d\n"javascript, Fib(n));
    			break;
    		}
    	}
    	编程客栈return 0;
    }

    运行截图:

    C语言新手练习题之求第n个斐波那契数

    总结

    以上就是今天要讲的内容,本文简单的介绍了用C语言如何求解第n个斐波那契数的两种思路,还进一步展示了代码的运行结果验证了作者的思路。

    到此这篇关于C语言新手练习题之求第n个斐波那契数的文章就介绍到这了,更多相关C语言求第n个斐波那契数内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

    0

    上一篇:

    下一篇:

    精彩评论

    暂无评论...
    验证码 换一张
    取 消

    最新开发

    开发排行榜