一、题目分析
题目链接
一道非常简单的线性dp问题。
数据范围为:0<n<30。
设置dp表——dp[31][31](从1开始录入,防止边界问题)
dp[i][j]=dp[i-1][j]+dp[i-1][j-1]
输出中因为每个数据输出域宽为5,
print('%5d",dp[i][j]);
完整代码如下:
#include <iostream>
using namespace std;
int dp[31][31];
int main() {
//线性dp,dp表——dp[31][31]
int n;cin>>n;
dp[1][1]=1;
for(int i=2;i<=n;++i){
for(int j=1;j<=i;++j)
{
dp[i][j]=dp[i-1][j]+dp[i-1][j-1];
}
}
for(int i=1;i<=n;++i){
for(int j=1;j<=i;++j){
printf("%5d",dp[i][j]);
}
printf("\n");
}
return 0;
}