杭电acm2041

#include <stdio.h>

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

第m-1阶台阶到第m阶有1种方法

第m-2阶台阶到第m阶有1种方法

所以 a[m] = a[m-1] + a[m-2]


posted @ 2015-03-02 17:04  StevenLuke  阅读(138)  评论(0编辑  收藏  举报