利用二维数组实现杨辉三角详解(C)

杨辉三角,是二项式系数在三角形中的一种几何排列,中国南宋数学家杨辉1261年所著的《详解九章算法》一书中出现。在欧洲,帕斯卡(1623----1662)在1654年发现这一规律,所以这个表又叫做帕斯卡三角形。
杨辉三角是数学中很经典的一个规律,今天我们用编程实现杨辉三角的打印。
这次编程的实现利用了杨辉三角每个数等于它上方两数之和
在这里插入图片描述

注意:第一位为固定的1,第一个三角形不适合这个规律,但我们可以在编程中轻易的化解
既然是一个二维的图案,然后还是有一定规律的,我们可以用二维数组来实现。
既然是数组,就是从0作为起始位的。我的的目的就是构造出如下的图:
在这里插入图片描述我们先把特殊的外围一圈1打印出来(10层为例):

int arr[10][10] = {
    
     0 };
	for (int a = 0; a < 10; a++){
    
    
		for (int b = 0; b < 10; b++){
    
    
			arr[a][0] = 1;
			arr[a][a] = 1;
		}
	}

如图所示:
在这里插入图片描述接下来打印内部数字:

for (int a = 2; a < 10; a++){
    
    
		for (int b = 0; b < a; b++){
    
    
			arr[a][b] = arr[a - 1][b - 1] + arr[a - 1][b];
		}
	}

在这里杨辉三角已经构造完成,然后用一个循环打印我们构造的二维数组
源代码如下:

#include<stdio.h>
#include<stdlib.h>
int main(){
    
    
int arr[10][10] = {
    
     0 };
	for (int a = 0; a < 10; a++){
    
    
		for (int b = 0; b < 10; b++){
    
    
			arr[a][0] = 1;
			arr[a][a] = 1;
		}
	}

	for (int a = 2; a < 10; a++){
    
    
		for (int b = 0; b < a; b++){
    
    
			arr[a][b] = arr[a - 1][b - 1] + arr[a - 1][b];
		}
	}

	for (int a = 0; a < 10; a++){
    
    
		for (int b = 0; b <= a; b++){
    
    
			printf("%4d", arr[a][b]);
		}
		printf("\n");
	}
	system("pause");
	return 0;
}

猜你喜欢

转载自blog.csdn.net/zhaocx111222333/article/details/109629316
今日推荐