统计问题

Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)

Total Submission(s): 6449    Accepted Submission(s): 3809


Problem Description
在一无限大的二维平面中,我们做例如以下如果:
1、  每次仅仅能移动一格;
2、  不能向后走(如果你的目的地是“向上”,那么你能够向左走。能够向右走,也能够向上走。可是不能够向下走)。
3、  走过的格子马上塌陷无法再走第二次。

求走n步不同的方案数(2种走法仅仅要有一步不一样,即被觉得是不同的方案)。


 

Input
首先给出一个正整数C。表示有C组測试数据
接下来的C行。每行包括一个整数n (n<=20)。表示要走n步。


 

Output
请编程输出走n步的不同方案总数。
每组的输出占一行。
 

Sample Input
2 1 2
 

Sample Output
3 7
 

非常easy的规律问题,非常像核反应哪一题。


#include<stdio.h>
int a[23];
int main()
{
	int n,m,i;
	a[1]=3;a[2]=7;
	for(i=3;i<22;i++)
	a[i]=a[i-2]*3+(a[i-1]-a[i-2])*2;
	scanf("%d",&n);
	while(n--)
	{
		scanf("%d",&m);
		printf("%d
",a[m]);
	}
	return 0;
}

原文地址:https://www.cnblogs.com/cynchanpin/p/6973286.html