蓝桥杯 第39级台阶
2013-12-22 18:00
302 查看
第39级台阶
#include <stdio.h> int c[40][2];//0为左脚,1为右脚。。 int main(){ int i; c[0][0] = c[1][1] = 0; c[0][1] = c[1][0] = 1; for(i = 2; i <= 39; ++i){ c[i][0] = c[i - 1][1] + c[i - 2][1]; c[i][1] = c[i - 1][0] + c[i - 2][0]; } printf("%d\n", c[39][1]); return 0; }
首先你要理解状态c[i][0]表示走到第i个楼梯时最后一步是左脚的方法数,c[i][1]是右脚的方法数。。
那么,由于每一步能上一到两级,c[i][0] = c[i-1][1]+c[i-2][1](因为最后一步为左脚,倒数第二步肯定为右脚。。)。。然后一直递推。。最后c[39][1]即上到第39级而且是右脚的方法数即为答案。。