第一种方法:
#include <iostream>
using namespace std;
int getSum(int n);
int main() {
int n;
cin >> n;
cout << getSum(n) << endl; //输出结果
return 0;
}
int getSum(int n) {
if(n == 1 || n == 2) //n=1或2跳出递归
return 1;
return getSum(n - 1) + getSum(n - 2); //返回前两个月相加
}
第二张方法:
#include <iostream>
using namespace std;
int getSum(int n);
int main() {
int n;
cin >> n;
cout << getSum(n) << endl; //输出结果
return 0;
}
int getSum(int n) {
if(n <= 2) //2及以下直接返回
return 1;
int a = 1; //表示当前要计算的月份前一个月
int b = 1; //表示当前要计算月份的前两个月
int res = 0;
for(int i = 3; i <= n; i++){ //遍历3-n
res = a + b; //直接相加
b = a; //更新前两个
a = res; //
}
return res;
}