C语⾔实现⾛台阶算法C语⾔实现⾛台阶算法,是基于基于C98实现的的,具体代码如下: #include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define Maxsize 200
int getStepNum(int, int);
void printSum();
int *step;
int len;
int main() {
int n = 10;
int maxStep = 2;
step = (int*)malloc(sizeof(int[n]));
printf("⽅案数:%d",getStepNum(n, maxStep));
}
void printSum() {
printf("⾛法:");
int i = 0;
maxstepwhile(i < len){
printf("%d ", step[i]);
i++;
}
printf("\n");
}
int getStepNum(int n, int m) {
int sumStep = 0;
if (n == 0) {
printSum();
return 1;
}
if (n >= m) {
// 如果n⼤于每步最⼤台阶数,则设置第⼀步为m之内的⼀个台阶数,然后递归循环int i = 1;
while(i <= m){
step[len] = i;
len++;
sumStep += getStepNum(n - i, m);
len--;
i++;
}
} else {
// 如果n⼩于m,则将⼀步最⼤台阶数缩⼩为n,重新递归
sumStep = getStepNum(n, n);
}
return sumStep;
}