1 // @author: bos
2 // @date: 2012.1.27
3 // HDOJ 2160题
4 // 稍微写几个数据就能发现规律:
5 // 第1天只有一头猪,第2天有两头猪,分为两部分,一部分是年龄是1天的猪,另一部分是刚出生的猪。
6 // 从第3天开始,第2天里年龄是1天的猪被杀掉,剩下的猪是:第2天的猪每头生一头+第2天里刚出生的猪
7 // 依次可计算出前20天的所有猪的数量
8 // 我用数组存放了这些数据
9
10 #include <stdio.h>
11 int main()
12 {
13 int t;
14 scanf("%d", &t);
15 while(t--)
16 {
17 int day= 0;
18 int num[21]={0};
19 scanf("%d", &day);
20 int i;
21 for(i= 1; i<= 20; i++)
22 {
23 if(i== 1) num[i]= 1;
24 else if(i== 2) num[i]= 2;
25 else num[i]= num[i-1]+ num[i-2];
26 }
27 printf("%d\n", num[day]);
28
29 }
30 return 0;
31 }