/*标签:契数,return,递归,int,nf,斐波,计算,问题 From: https://blog.51cto.com/EddieLai/6113530
思路:
一个问题直接求解时不好求解,如果可以将其划分成其子问题,并且子问题和原问题有相同的解法时,就可以使用递归的方式解决
递归的两个条件:
1. 将问题划分成其子问题,要求:子问题要与原问题具有相同的解法
2. 递归的出口
1 N < 3
Fac(N)
Fac(N-1) + Fac(N-2) N >= 3
*/
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
int nf(int n)
{
int count = 0;
if (n <= 2)
return 1;
else
return nf(n - 1) + nf(n - 2);
}
int main()
{
/*【题目名称】
计算斐波那契数
【题目内容】
递归和非递归分别实现求第n个斐波那契数
1 1 2 3 5 8 13 21 35
例如:
输入:5 输出:5
输入:10, 输出:55
输入:2, 输出:1*/
while (1)
{
int n = 0;
printf("请输入你想查找第n个斐波那契数:n=");
scanf("%d", &n);
printf("%d\n", nf(n));
}
return 0;
}