打印出杨辉三角形

来源:百度知道 编辑:UC知道 时间:2024/05/30 00:04:57
main()
{int i,j;
int a[10][10];
printf("\n");
for(i=0;i<10;i++)
{a[i][0]=1;
a[i][i]=1;}
for(i=2;i<10;i++)
for(j=1;j<i;j++)
a[i][j]=a[i-1][j-1]+a[i-1][j];
for(i=0;i<10;i++)
{for(j=0;j<=i;j++)
printf("%5d",a[i][j]);
printf("\n");
}
}

不要用数组,那样浪费空间
#include<stdio.h>

//#define line 10
int c ( int a , int b )
{
int value = 0;

if ( b == 1 || b == a )//开头和结尾
{
value = 1;
}

else value = c ( a - 1 , b - 1)+c(a-1,b);//中间的值,递归
return value;
}

void main()
{
int n;
int j = 0;
printf("你要输入多少行?\n");
scanf("%d",&n);

while ( n > 13 ) // 确保输入范围,使以后输出,不会越界
{
scanf("%d",&n);
}

for ( int i = 0 ; i < n ; i++)
{
for ( j = 0 ; j < 2*n - 2*i ; j++)//控制空格
{
printf(" ");
}

for ( j = 0 ; j < i + 1 ; j++)//控制列输出
{
printf("%4d",c(i+1,j+1));
}
printf("\n");//分行
}
}