如何使用C语言以Pascal三角形的形式打印整数?

什么是Pascal三角形?

Pascal三角形是由法国数学家布莱士·帕斯卡(Blaise Pascal)在17世纪中发现的一组数。该三角形的第n行(n≥0)由(n+1)个数构成,第一个和最后一个数为1,其它数为该数的前一行中处于它上方的两个数之和。例如,第4行的数为1 3 3 1,表示(x+y)3的展开系数。

如何用C语言打印Pascal三角形?

1.使用二维数组打印

使用二维数组打印Pascal三角形的思路是定义一个二维数组,然后使用双重循环来填充该数组。具体实现如下:

#include <stdio.h>

int main()

{

int rows, coef = 1;

printf("Enter the number of rows: ");

scanf("%d", &rows);

for(int i=0; i<rows; i++)

{

for(int space=1; space<=rows-i; space++)

printf(" ");

for(int j=0; j<=i; j++)

{

if(j==0||i==0)

coef = 1;

else

coef = coef*(i-j+1)/j;

printf("%4d", coef);

}

printf("\n");

}

return 0;

}

该程序使用了一个二维数组,定义为:

int pascal_triangle[rows][rows];

然后使用双重循环来填充该数组:

for (int i=0; i<rows; i++)

{

for(int j=0; j<=i; j++)

{

if(j==0||i==j)

pascal_triangle[i][j] = 1;

else

pascal_triangle[i][j] = pascal_triangle[i-1][j-1] + pascal_triangle[i-1][j];

}

}

最后使用双重循环来打印数组中的元素:

for(int i=0; i<rows; i++)

{

for(int j=0; j<rows-i-1; j++)

printf(" ");

for(int j=0; j<=i; j++)

printf("%d ", pascal_triangle[i][j]);

printf("\n");

}

完整的程序在运行时会提示用户输入行数,然后按照Pascal三角形的格式打印出相应的数字。运行结果如下:

Enter the number of rows: 6

1

1 1

1 2 1

1 3 3 1

1 4 6 4 1

1 5 10 10 5 1

2.使用递归函数打印

另外一种打印Pascal三角形的方法是使用递归函数,具体实现如下:

#include <stdio.h>

int combination(int n, int r)

{

if(r==0 || r==n) return 1;

else return combination(n-1, r-1)+combination(n-1, r);

}

int main()

{

int rows;

printf("Enter the number of rows: ");

scanf("%d", &rows);

for(int i=0; i<rows; i++)

{

for(int space=1; space<=rows-i; space++)

printf(" ");

for(int j=0; j<=i; j++)

printf("%4d", combination(i,j));

printf("\n");

}

return 0;

}

该程序使用递归函数来计算每个元素的值:

int combination(int n, int r)

{

if(r==0 || r==n) return 1;

else return combination(n-1, r-1)+combination(n-1, r);

}

具体方法是根据组合公式Cnr=Cn-1r-1+Cn-1r来递归计算。

另外,该程序使用了一个嵌套的循环来打印Pascal三角形:

for(int i=0; i<rows; i++)

{

for(int space=1; space<=rows-i; space++)

printf(" ");

for(int j=0; j<=i; j++)

printf("%4d", combination(i,j));

printf("\n");

}

完整的程序在运行时会提示用户输入行数,然后按照Pascal三角形的格式打印出相应的数字。运行结果如下:

Enter the number of rows: 6

1

1 1

1 2 1

1 3 3 1

1 4 6 4 1

1 5 10 10 5 1

总结

本文介绍了如何使用C语言来打印Pascal三角形。Pascal三角形是一个由法国数学家布莱士·帕斯卡在17世纪中发现的有趣的数学形式。该三角形的第n行(n≥0)由(n+1)个数构成,第一个和最后一个数为1,其它数为该数的前一行中处于它上方的两个数之和。

本文介绍了两种方法来打印Pascal三角形,分别是使用二维数组和递归函数。使用二维数组的方法先定义一个二维数组,然后使用双重循环来填充该数组,最后使用双重循环来打印数组中的元素。使用递归函数的方法先定义一个递归函数来计算每个元素的值,然后使用嵌套的循环来打印Pascal三角形。

后端开发标签