(C语言)蓝桥杯-杨辉三角形
问题描述
杨辉三角形又称Pascal三角形,它的第i+1行是(a+b)i的展开式的系数。
它的一个重要性质是:三角形中的每个数字等于它两肩上的数字相加。
下面给出了杨辉三角形的前4行:
1
1 1
1 2 1
1 3 3 1
给出n,输出它的前n行。
数据规模与约定
1 <= n <= 34
#include <stdio.h>
#define M 34
int main()
{
int n;
int i,j;
int y[M][M];
scanf("%d",&n);
for(int i=0;i<n;i++)
{
y[i][0]=1;
y[i][i]=1;//杨辉三角形每行第一列和最后一列数据都为1
for(int j=1;j<i;j++)
{
y[i][j]=y[i-1][j-1]+y[i-1][j];//每个数字等于肩上两数字之和
}
}
for(int i=0;i<n;i++)
{
for(int j=0;j<=i;j++)
{
printf("%d ",y[i][j]);
}
printf("\n");
}
return 0;
}
再分享一种杨辉三角的编写代码
#include <stdio.h>
#define N 14
int main()
{
int i, j, k, n=0, a[N][N];
while(n<=0||n>=13){
printf("请输入要打印的行数:");
scanf("%d",&n);
}
for(i=1;i<=n;i++)
a[i][1] = a[i][i] = 1;
for(i=3;i<=n;i++)
for(j=2;j<=i-1;j++)
a[i][j]=a[i-1][j-1]+a[i-1][j];
for(i=1;i<=n;i++){
for(k=1;k<=n-i;k++)
printf(" ");
for(j=1;j<=i;j++)
printf("%6d",a[i][j]);
printf("\n");
}
printf("\n");
return 0;
}
大家注意用int要控制最大行,若要大些的话,用float或者long 要好些
来源:CSDN
作者:菜鸟小朋友c
链接:https://blog.csdn.net/qq_45494634/article/details/104080643