有n个阶梯,可以一次上一个台阶,也可以一次上两个台阶,有几种方法上完?请给出求解此问题的算法,并给出在n=11时的结果。
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(){
int a, b, n, count = 0;
printf("请输入总台阶数:");
scanf("%d", &n);
for (a = 0; a <= n; a++) {//a代表1个台阶
for (b = 0; b <= n/2; b++) {//b代表2个台阶
if (a + b * 2 == n) {
printf("a=%d,b=%d\n", a, b);
count++;
}
}
}
printf("一共有%d种方法\n", count);
return 0;
}
运行结果: