题目描述
我们知道xry111不仅仅代码写的棒,硬件也不是一般人可以比拟的,比如他可以左手右手加上嘴里叼着一个烙铁一起工作,同时焊接三块板子!Orz,现在他的实验室知道他这么厉害了,准备让他焊接N块板子,他一次可以焊接一块,两块或者三块,问他总共有多少种焊接的方式呢?是不是很简单?
比如一块板子只有一种安排方式,两块板子有两种,四块板子有七种,分别是
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次,第一次三个,第二次一个)
输入
多组输入输出,处理到文件结束。
每行一个数N,4<=N<=70
输出
对于每个N输出一行,表示最后的方案数
--正文
简单的递推题
#include <cstdio> #include <cstring> #include <iostream> #include <algorithm> using namespace std; long long f[100]; int i,n; int main(){ f[1] = 1; f[2] = 2; f[3] = 4; for (i=4;i<=70;i++){ f[i] = f[i-1] + f[i-2] + f[i-3]; } while (scanf("%d",&n) != EOF){ printf("%lld ",f[n]); } return 0; }