编程实现“n阶杨辉三角形问题”,要求: (1)给出n阶杨辉三角形的递推关系式: (2)输出左右对称的n(ns20)阶等腰数字三角形: (3)输出杨辉三角形的变形三角形 用C语言编写程序代码
时间: 2024-09-24 10:26:56 浏览: 58
杨辉三角形是一个经典的组合数学问题,它通常用于展示二项式的系数。以下是实现这个需求的C语言代码示例:
```c
#include <stdio.h>
// 定义函数计算杨辉三角的值
int binomial_coefficient(int n, int k) {
if (k == 0 || k == n)
return 1;
else
return binomial_coefficient(n - 1, k - 1) + binomial_coefficient(n - 1, k);
}
// 输出n阶杨辉三角
void print_pascal_triangle(int n) {
for (int i = 0; i <= n; ++i) {
// 输出行头
printf("%d", i > 0 ? binomial_coefficient(i, i) : 1);
// 输出中间元素
for (int j = 1; j < i; ++j)
printf(" %d", binomial_coefficient(i, j));
// 输出行尾并换行
printf("\n");
}
}
// 输出左右对称的n阶等腰数字三角形
void print_symmetric_triangle(int n) {
int triangle[n][n];
for (int i = 0; i < n; ++i) {
for (int j = 0; j <= i; ++j) {
triangle[i - j][j] = binomial_coefficient(2 * i, i - j);
triangle[i][i - j] = triangle[i - j][j]; // 对称部分
}
}
for (int i = 0; i < n; ++i) {
for (int j = 0; j <= i; ++j) {
printf("%4d", triangle[i][j]);
}
printf("\n");
}
}
// 输出变形三角形,如将每个数字乘以其位置
void print_deformed_triangle(int n) {
int deformed_triangle[n][n];
for (int i = 0; i < n; ++i) {
for (int j = 0; j <= i; ++j) {
deformed_triangle[i][j] = i + 1 * binomial_coefficient(i, j);
}
}
for (int i = 0; i < n; ++i) {
for (int j = 0; j <= i; ++j) {
printf("%4d", deformed_triangle[i][j]);
}
printf("\n");
}
}
int main() {
int n = 20; // 可以替换为你需要的任意数值
printf("N阶杨辉三角形:\n");
print_pascal_triangle(n);
printf("\n左右对称的n阶等腰数字三角形:\n");
print_symmetric_triangle(n);
printf("\n变形三角形:\n");
print_deformed_triangle(n);
return 0;
}
```
阅读全文