设有一个递归算法如下
int f(int n) {
if(n<=3) return 1;
else return f(n-2)+f(n-6)+1;
} 试问计算f(f(9))时需要计算()次f函数。
#include<iostream>
#include<cstdio>
#include<cmath>
#include<ctime>
#include<cctype>
#include<cstring>
#include<cstdlib>
#include<climits>
#include<cfloat>
#include<iostream>
#include<vector>
#include<stack>
#include<queue>
#include<set>
#include<map>
#include<algorithm>
using namespace std;
int counter = 0;
int f(int n) {
counter++;
if (n <= 3)
return 1;
else
return f(n - 2) + f(n - 6) + 1;
}
int main() {
f(f(9));
cout << counter << endl;
return 0;
} 输出为12。