c语言数字三角形(动态规划)
时间: 2024-07-02 15:00:45 浏览: 176
动态规划 数字三角形
4星 · 用户满意度95%
在C语言中,数字三角形(也称为帕斯卡三角形或杨辉三角)是一个经典的动态规划问题,它可以通过递推算法来构建。这个三角形的特点是每一行都是由前一行的数字相加得到的,最开始的两行通常包含数字1。
以下是一个简单的动态规划方法来生成数字三角形:
```c
#include <stdio.h>
// 动态规划函数,返回给定行的第列值
int getTriangleValue(int row, int col) {
if (col > row) return 0;
if (col == 0 || col == row) return 1; // 边界条件:第一行和对角线上的数都是1
// 前一行的值
int prevRow = getTriangleValue(row - 1, col);
// 返回当前行的值,根据动态规划规则计算
return getTriangleValue(row - 1, col - 1) + prevRow;
}
// 主函数,打印数字三角形
void printTriangle(int rows) {
for (int i = 0; i <= rows; i++) {
for (int j = 0; j <= i; j++) {
printf("%d ", getTriangleValue(i, j));
}
printf("\n");
}
}
int main() {
int rows = 5; // 指定要打印的行数
printTriangle(rows);
return 0;
}
```
当你运行这段代码,它会输出指定行数(如5)的帕斯卡三角形。
阅读全文