思路一:递归
#include <iostream>
using namespace std;
int getsum(int n){
if(n==1||n==2)
return 1;
return getsum(n-1)+getsum(n-2);
}
int main() {
int n;
cin>>n;
cout<<getsum(n);
}
// 64 位输出请用 printf("%lld")
思路二:迭代
#include<iostream>
using namespace std;
int main(){
int n;
while(cin >> n){ //每次输入n
if(n <= 2) //前两个月直接输出
cout << 1 << endl;
else{
int dpi_2 = 1; //初始化第1个月
int dpi_1 = 1; //初始化第2个月
int output = 0;
for(int i = 3; i <= n; i++){
output = dpi_1 + dpi_2; //公式相加
dpi_2 = dpi_1; //变量更新
dpi_1 = output;
}
cout << output << endl;
}
}
return 0;
}



京公网安备 11010502036488号