杨辉三角及其变形


   /*杨辉三角
  1
  1 1                        a[i] [0]=1   a[i][j]=1  所以j==0||i==j 
  1 2 1                       a[i]
  1 3 3 1
  1 4 6 4 1
  1 5 10 10 5 1
  */ 
  


#include<stdio.h>
int main(void)
{
	int i,j;//控制行和列
	int a[10][10];//假设这是一个10X10的数组
	
	for (i=0;i<10;i++)
	{
		for (j=0;j<=i;j++)
		{
			if (j==0||(j==i))
			{
			   a[i][j]=1;
			}
			else
			{
				a[i][j]=a[i-1][j-1]+a[i-1][j];//和为 上一个数和其前面数的和 
			}
		}
	 } 
	 /*输出结果*/
	 for(int m=0;m<10;m++)
	{
		for(int n=0;n<=m;n++)
		{
			printf(" \t%4d",a[m][n]);
		}
		printf(" \n"); 
	}
}

/*杨辉三角的变形
+ 1
1 1 空格:第一行 9个空格
1 2 1
1 3 3 1
1 4 6 4 1

					  */ 

#include<stdio.h>
int main(void)
{
int i,j,m,n;
int a[10][10];//定义一个10x10的大数组

/*为数组赋值*/
for (i=0;i<10;i++)         //10行
{
	for (j=0;j<=i;j++)
	{
		if(j==0||(i==j))
		{
			a[i][j]=1;//两边的值都为1 
		}
		else
		{
			a[i][j]=a[i-1][j]+a[i-1][j-1];
		}
	}
} 

/*打印数值和空格*/ 

for (m=0;m<10;m++)
{
	/*打印空格*/
	for (int p=0;p<10-1-m;p++)
	{
	    printf("  ");
	}
		
	for (n=0;n<=m;n++)
	{
	
		/*打印数字*/
		printf("%6d ",a[m][n]);//打印数字

// printf("\n");
}

	    printf("\n"); //打印换行
}

}


猜你喜欢

转载自blog.csdn.net/weixin_38336546/article/details/82945041