C语言新手练习题之求第n个斐波那契数
轻轻敲醒沉睡的心灵d(ŐдŐ๑) 人气:0前言
在C语言中,分别用递归和非递归两种方法实现求第n个斐波那契数
一、思路
首先分析一下关于斐波那契数列的原理:
第一个和第二个数都是1,之后的每个数都是前两个数之和,即:
1,1,2,3,5,8,……
1.非递归
用到了循环相关的知识,
当n>2的时候进入循环,将前两个数相加得到第三个数;
当n<=2的时候跳出循环。
2.递归
观察斐波那契数列可以得到一个公式:
根据这个公式就能进行递归。当n>2的时候进行递归,当n%20=%201或n%20=%202时返回1。
二、源代码以及运行截图
为了方便大家的交流和学习,我将程序源代码和运行截图放置在下方。
非递归:
源代码:
#include<stdio.h> //递归和非递归分别实现求第n个斐波那契数 //非递归 int%20main() { int%20i%20=%201; int%20j%20=%201; int%20temp%20=%200; int%20n%20=%200; int%20fib%20=%200; scanf("%d",%20&n); while%20(n%20>%200) { if%20(n%20>%202) { temp%20=%20j; j%20=%20i%20+%20j; i%20=%20temp; } else%20 fib%20=%20j; n--; } printf("%d",%20fib); return%200; }
运行截图:
递归:
源代码:
//递归 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", Fib(n)); break; } } return 0; }
运行截图:
总结
以上就是今天要讲的内容,本文简单的介绍了用C语言如何求解第n个斐波那契数的两种思路,还进一步展示了代码的运行结果验证了作者的思路。
加载全部内容