01串---南陽OJ

01串

時間限制:1000 ms  |  內存限制:65535 KB
難度:2
描述

ACM的zyc在研究01串,他知道某一01串的長度,但他想知道不含有“11”子串的這種長度的01串共有多少個,他希望你能幫幫他。

注:01串的長度爲2時,有3種:00,01,10。

輸入
第一行有一個整數n(0<n<=100),表示有n組測試數據;
隨後有n行,每行有一個整數m(2<=m<=40),表示01串的長度;
輸出
輸出不含有“11”子串的這種長度的01串共有多少個,佔一行。
樣例輸入
2
2
3
樣例輸出
3
5
這題和以前做過的一道關於上臺階的方法數類似,就是每邁一步,可以邁一節或兩節,求有多少種方法可以達到頂層
求到達當前臺階的方法就等於前一節加前兩節的方法數的總和,因爲一次可以邁一節或兩節
所以這其實是斐波那契數列,這題也一樣,請讀者自行理解
#include <stdio.h>

int a[45][2];
int main(){
	a[1][0] = 1;
	a[1][1] = 1;
	int i, j;
	for (i = 2; i <= 40; i++){
		a[i][0] = a[i - 1][0] + a[i - 1][1];
		a[i][1] = a[i - 1][0];
	}
	int t;
	scanf("%d", &t);
	while (t--){
		int n;
		scanf("%d", &n);
		printf("%d\n", a[n][0] + a[n][1]);
	}
	return 0;
}


發佈了77 篇原創文章 · 獲贊 71 · 訪問量 11萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章