📅  最后修改于: 2023-12-03 14:40:27.162000             🧑  作者: Mango
本程序使用C语言编写,用于计算到达第n个楼梯的方式。程序使用动态规划的方法来解决问题,通过计算小规模问题的解来逐步推导出较大规模问题的解。以下是程序的代码片段:
#include <stdio.h>
int countWays(int n) {
int ways[n+1];
ways[0] = 1;
ways[1] = 1;
for (int i = 2; i <= n; i++) {
ways[i] = ways[i-1] + ways[i-2];
}
return ways[n];
}
int main() {
int n = 10;
int ways = countWays(n);
printf("There are %d ways to reach the %dth stair.\n", ways, n);
return 0;
}
以上代码片段中,countWays
函数使用动态规划算法来计算到达第n个楼梯的方式。该函数使用一个整型数组ways
来记录到达每个楼梯的方式数。初始时,第一个楼梯和第二个楼梯的方式数均为1。然后循环从第三个楼梯开始计算每个楼梯的方式数,每层楼梯的方式数等于上一层楼梯的方式数加上上上层楼梯的方式数。
在main
函数中,我们调用countWays
函数来计算到达第10个楼梯的方式数,并通过printf
函数输出结果。
你可以将以上代码片段复制到你的C程序中,并根据需要修改变量n
的值来计算到达其他楼梯的方式数。