杨辉三角形(简明易懂)

描述

编程输入一个正整数N,输出杨辉三角的前N行。用二维数组实现,先把各个数值存储到数组中,再输出。‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬

输入

一个整数N,N<20。‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬

输出

按示例格式输出,一行中整数之间隔一个空格。

代码段

#include<stdio.h>
//主要思路:利用二维数组,先在1个100*100的二维素组里全部存储1
//再用杨辉三角的核心思想 a[i][j]=a[i-1][j-1]+a[i-1][j]; 
//(即每一项的数组值等于这个数组上一列的值+这个数组上一行同时上一列的值)
//最后依次输出,注意格式(用标记flat法) 
int main(){
	int i,j,n,flat=1;
	int a[100][100];
	scanf("%d",&n);//输出想要显示出杨辉三角的行数值 
	for(i=0;i<n;i++)
	{
		for(j=0;j<n;j++)
		{	
		a[i][j]=1;
		}
	
	}
	for(i=1;i<n;i++)
	{
		for(j=1;j<i;j++)
		a[i][j]=a[i-1][j-1]+a[i-1][j]; 
	}
	for(i=0;i<n;i++)
	{ flat=1;
		for(j=0;j<=i;j++)
		{
			if(flat==1)
			{printf("%d",a[i][j]);flat=0;
			}
			
			else 
			printf(" %d",a[i][j]);
		}
		
		printf("n");
	}
	
	
}

 

如果想要把数据居中,呈现出一下效果,可以继续改善

以下代码

#include<stdio.h>
//主要思路:利用二维数组,先在1个100*100的二维素组里全部存储1
//再用杨辉三角的核心思想 a[i][j]=a[i-1][j-1]+a[i-1][j]; 
//(即每一项的数组值等于这个数组上一列的值+这个数组上一行同时上一列的值)

int main(){
	int i,j,n,k;
	int a[100][100];
	scanf("%d",&n);//输出想要显示出杨辉三角的行数值 
	for(i=0;i<n;i++)
	{
		for(j=0;j<n;j++)
		{	
		a[i][j]=1;
		}
	
	}
	for(i=1;i<n;i++)
	{
		for(j=1;j<i;j++)
		a[i][j]=a[i-1][j-1]+a[i-1][j]; 
	}
	for(i=0;i<n;i++)
	{  
	 for(k=0;k<26-6*i/2;k++) 
	 printf(" ");
		for(j=0;j<=i;j++)
		{
			
			printf("%6d",a[i][j]);
			
			
		
		}
		
		printf("n");
	}
	
	
}

 

 

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码
< <上一篇
下一篇>>