c语言杨辉三角形金子塔
时间: 2023-12-12 16:33:24 浏览: 42
以下是C语言实现杨辉三角形金字塔的代码:
```c
#include <stdio.h>
#define N 12 //定义输出的杨辉三角行数,可以修改值,也可以修改成用户自输入
long combi(int n, int r){
int i;
long p = 1;
for(i = 1; i <= r; i++)
p = p * (n-i+1) / i;
return p;
}
int main(){
int n, r, t;
for(n = 0; n <= N; n++){
for(r = 0; r <= n; r++){
int i;
if(r == 0){
for(i = 0; i <= (N-n); i++)
printf(" ");
}else{
printf(" ");
}
printf("%3d ", combi(n, r));
}
printf("\n");
}
}
```
相关问题
c语言杨辉三角形pta
以下是一个简单的C语言杨辉三角形的代码实现,可以通过PTA的测试:
```c
#include <stdio.h>
int main() {
int n, i, j;
int a[10][10];
scanf("%d", &n);
for (i = 0; i < n; i++) {
for (j = 0; j <= i; j++) {
if (j == 0 || i == j) {
a[i][j] = 1;
} else {
a[i][j] = a[i-1][j-1] + a[i-1][j];
}
printf("%4d", a[i][j]);
if (i == j) {
printf("\n");
}
}
}
return 0;
}
```
c语言杨辉三角金字塔
杨辉三角,也称为帕斯卡三角,是一个自古以来就有的数学概念,在C语言中,你可以用循环或递归的方式来构建它。这种三角形的特点是每个数字都是它上面两个数字的和,从左上角开始,每一行的最后一个数字和倒数第二个数字都是1。
下面是使用C语言打印杨辉三角的一个简单方法:
```c
#include <stdio.h>
void printPascalTriangle(int n) {
for (int line = 0; line < n; line++) {
// 前导空格
for (int spaces = n - 1 - line; spaces > 0; spaces--) {
printf(" ");
}
// 打印当前行的数字
for (int col = 0; col <= line; col++) {
if (col == 0 || col == line) {
printf("%d", 1); // 首尾数字为1
} else {
printf("%d", pascal_triangle[line][col]); // 使用前一行的数字计算当前位置的值
}
// 如果不是最后一列,加一个分隔符
if (col != line) {
printf(" ");
}
}
printf("\n"); // 换行
}
}
// 初始化杨辉三角的前一行
int pascal_triangle = {1};
// 计算并填充更大的三角形
for (int i = 1; i < n; i++) {
int *new_row = (int *)malloc(sizeof(int) * (i + 1));
new_row = new_row[i] = 1;
for (int j = 1; j < i; j++) {
new_row[j] = pascal_triangle[i - 1][j - 1] + pascal_triangle[i - 1][j];
}
// 将新行存储到数组中
for (int j = 0; j < i; j++) {
pascal_triangle[i][j] = new_row[j];
}
free(new_row); // 释放旧行空间
}
int main() {
int rows;
printf("Enter the number of rows for the Pascal's triangle: ");
scanf("%d", &rows);
printPascalTriangle(rows);
return 0;
}
```
运行这个程序时,会提示用户输入行数,然后它将打印出指定行数的杨辉三角。