1. 从小数找规律,验证规律。这个题,当n前边的数最后为1的方案可以拆分为两个,即最后两步分两步走还是一步走完,而最后为1的方案数等于n-1的方案数。这样就说明out【n】=out[n-1]+out[n-2]
2.想清楚这些,代码一气呵成。
以下是代码:
#include <stdio.h> int count[47]; int main() { int i,m,num; scanf("%d", &m ); count[0] = 1; count[1] = 1; for ( i = 2; i <= 46; i++ ) { count[i] = count[i-1] + count[i-2]; } while( m-- ) { scanf( "%d", &num ); printf( "%d\n", count[num] ); } return 0; }