骨牌鋪方格

Time Limit : 2000/1000ms (Java/Other) Memory Limit : 65536/32768K (Java/Other)
Problem Description
在2×n的一個長方形方格中,用一個1× 2的骨牌鋪滿方格,輸入n ,輸出鋪放方案的總數.
例如n=3時,爲2× 3方格,骨牌的鋪放方案有三種,如下圖:

Input
輸入數據由多行組成,每行包含一個整數n,表示該測試實例的長方形方格的規格是2×n (0<n<=50)。

Output
對於每個測試實例,請輸出鋪放方案的總數,每個實例的輸出佔一行。

Sample Input
1
3
2

Sample Output
1
3
2

一道找規律的題,設a[i]表示n=i時的排列種數,a[1]=1,a[2]=2,a[n]=a[n-1+a[n-2]。
a[i]其實就是a[i-1]的基礎上加了一條2X1的格子,豎着放,或者是a[i-2]的基礎上加一個2X2,橫着放。
靈魂畫手,見諒
在這裏插入圖片描述

C

#include <stdio.h>
#pragma warning(disable:4996)
int main(void)
{
	long long a[51]={0,1,2}; //使用long long,要不然數字太大,會溢出
	int i,n;
	for(i=3;i<=50;i++)
		a[i]=a[i-2]+a[i-1];
	while(scanf("%d",&n)!=EOF)
		printf("%lld\n",a[n]);
	return 0;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章