任务描述
本关任务:在一个nxn的棋盘上,某人站在方格(0, 0),他只能向下或者向右,而且只能在棋盘的上三角中行走,问他走到(n-1, n-1)有多少种走法。编写一个程序计算。
编程要求
根据提示,在右侧编辑器编写代码,输入一个n, 要求输出从方格(0, 0),走到(n-1, n-1)有多少种走法。
测试说明
平台会对你编写的代码进行测试:
测试输入:6
预期输出:42
解析:经典的动态规划,使用动态数组及经典模板即可。
/********以下编写完整代码********************/
# include<stdio.h>
int qipan(int n){
int dp[n][n];
for(int i=0;i<n;i++)
for(int j=0;j<n;j++){
dp[i][j] = 0; # dp数组初始化
}
for(int i=0;i<n;i++){
dp[0][i] = 1; # 最上面一排初始化,只能为1
}
for(int i=1;i<n;i++)
for(int j=i;j<n;j++){
dp[i][j] = dp[i-1][j]+dp[i][j-1]; # 核心逻辑
}
return dp[n-1][n-1];
}
int main(){
int n;
scanf("%d", &n);
int res = qipan(n);
printf("%d", res);
}