天天打卡一小时第十五天

发布时间 2023-06-23 14:11:02作者: 伏尔·弗朗托

天天打卡一小时第十五天

  1. 问题描述

3-5 sdut-array2-4 打印“杨辉三角“ 品中国数学史 增民族自豪感(1)

背景介绍: 北宋人贾宪约1050年首先使用“贾宪三角”进行高次开方运算。

南宋数学家杨辉在《详解九章算法》(1261年)记载并保存了“贾宪三角”,故称杨辉三角。杨辉三角是中国数学史上的一个伟大成就。
杨辉三角,是中国古代数学的杰出研究成果之一,它把二项式系数图形化,把组合数内在的一些代数性质直观地从图形中体现出来,是一种离散型的数与形的结合。

中国南宋数学家杨辉1261年所著的《详解九章算法》一书中出现。在欧洲,帕斯卡(1623----1662)在1654年发现这一规律,所以这个表又叫做帕斯卡三角形。帕斯卡的发现比杨辉要迟393年,比贾宪迟600年。

杨辉三角数字的特点为:

(1)在三角形的首列和对角线上,数值均为1;

(2)其余数据为:每个数字等于上一行的左右两个数字之和,第n+1行的第i个数等于第n行的第i-1个数和第i个数之和,用公式表示为: C(n+1,i)=C(n,i)+C(n,i-1)。

图示为:

IMG_256

杨辉三角的应用:(a+b)的n次方,展开式中的各项系数依次对应杨辉三角的第(n+1)行中的每一项。

输入格式:

欲打印杨辉三角的行数n(1<=n<=13)。

输出格式:

每个数字占据4个字符的位置,数字左对齐,数字不足4位的右边留出空格。

输入样例:

13

输出样例:

1

1 1

1 2 1

1 3 3 1

1 4 6 4 1

1 5 10 10 5 1

1 6 15 20 15 6 1

1 7 21 35 35 21 7 1

1 8 28 56 70 56 28 8 1

1 9 36 84 126 126 84 36 9 1

1 10 45 120 210 252 210 120 45 10 1

1 11 55 165 330 462 462 330 165 55 11 1

1 12 66 220 495 792 924 792 495 220 66 12 1

  1. 设计思路

思路简单,不做阐述

  1. 程序流程图

无法正常显示

  1. 代码实现

#include <stdio.h>

#include <stdlib.h>

int main() {

int n,i,j;

scanf("%d",&n);

int a[n][n];

for(i=0;i<n;i++){

for(j=0;j<n;j++){

if(i==j||j==0){

a[i][j]=1;

}

else{

a[i][j]=a[i-1][j]+a[i-1][j-1];

}

}

}

for(i=0;i<n;i++){

for(j=0;j<n;j++){

if(j<=i){

printf("%-4d",a[i][j]);

}

}

printf("\n");

}

return 0;

}