题目描述
使用朴素递归算法计算第n个斐波那契数,并统计递归调用(即递归函数fib(n)被执行)的次数。
输入格式
一个整数n(1 <= n <=30) 。
输出格式
输出fib(n)的值以及递归次数,换行进行分隔。
样例输入
4
样例输出
3 5
问题提示
-
fib(1)=fib(2)=1
-
fib(n) = fib(n-1)+fib(n-2), n >=3
-
1<= n <= 30
老样子
废话不多说
直接上代码
#include<bits/stdc++.h>
using namespace std;
int ans;
int f(int x)
{
ans++;
if(x==1 || x==2)
{
return 1;
}
else
{
return f(x-1)+f(x-2);
}
}
int main()
{
int n;
cin>>n;
cout<<f(n)<<endl;
cout<<ans;
return 0;
}