0
已解决
4366 搬砖(rock)
题目描述 Description
考古队发现了一个非常巨大的古墓,具有非常高的考古价值,你随队来到了考古现场。经过紧张的发掘,古墓的墓道终于显露出来,但是它被一块块方砖封住了,现在你的任务就是帮助考古队将这些方砖移走,打通墓道。由于这些保存完好的古代方砖也是珍贵的文物,所以规定一次最多只能搬三块砖。那将这些砖头搬走共有多少种不同的搬法。
例如,现在总共有4个砖头,那么可以选择的方法有以下7种:
1,1,1,1(分4次搬完,每次搬一个砖头)
1,2,1(分3次搬完,第一次搬一个,第二次搬两个,第三次搬一个)
1,1,2(分3次搬完,第一次搬一个,第二次搬一个,第三次搬两个)
2,1,1(分3次搬完,第一次搬两个,第二次搬一个,第三次搬一个)
2,2 (分2次搬完,第一次搬两个,第二次搬两个)
1, 3 (分2次搬完,第一次搬一个,第二次搬三个)
3, 1 (分2次搬完,第一次搬三个,第二次搬一个)
输入描述 Input Description
一个1~40的正整数N,表示共有N块砖头
输出描述 Output Description
一个正整数,表示N块砖头移动的方法数
样例输入 Sample Input
4
样例输出 Sample Output
7
测试点有毒
#include<iostream>
using namespace std;
int n;
long long sum;
int f(int n){
if(n==1)
return 0;
else if(n==2)
return 1;
else
return f(n-1)+f(n-2);
}
int main(){
cin>>n;
for(int i=1;i<=n+1;i++){
sum+=f(i);
}
cout<<sum;
return 0;
}
