杭电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]