一、杨辉三角是什么?
杨辉三角是二项式系数在三角形中的一种几何排列,中国南宋数学家杨辉1261年所著的《详解九章算法》一书中出现。
该三角中每行第一个数和最后一个数都是1。
如果这个数不是行首或者行尾则该数字的值是肩膀上数字的和。
下面这个图片即为杨辉三角,n表示行数
二、题意
面给出了杨辉三角形的前4行:1
1 1
1 2 1
1 3 3 1
给出n,输出它的前n行。
输入格式
输入包含一个数n。
输出格式
输出杨辉三角形的前n行。每一行从这一行的第一个数开始依次输出,中间使用一个空格分隔。请不要在前面输出多余的空格。
样例输入
4
样例输出
1
1 1
1 2 1
1 3 3 1
数据规模与约定
1 <= n <= 34。
三、代码
1.代码的实现
代码如下(示例):
#include<bits/stdc++.h>
using namespace std;
#define N 35 //题目要求n小于等于34
int main()
{
int a[N][N];
int n,i,j;
cin>>n;
for(i=1;i<=n;i++)
for(j=1;j<=i;j++)
{
if(j==1||j==i)//该行的第一个和该行的最后一个数据都是1
a[i][j]=1;
else
a[i][j]=a[i-1][j-1]+a[i-1][j];//杨辉三角基本公式
}
//下面为输出数据
for(i=1;i<=n;i++)
{
for(j=1;j<=i;j++)
{
cout<<a[i][j];
}
cout<<endl;
}
return 0;
}
2.读入数据
代码如下(示例):
5//输入5
//下面的都是输出的数据
1
11
121
1331
14641
四、总结
在求解杨辉三角这类问题,给三角形赋值的时候,注意 j 的值为1 和 j 的值和 i 的值相等的时候,把该位置的值赋为1。当该位置不在行首或者行尾的时候,使用杨辉三角的基本公式a[i][j]=a[i-1][j-1]+a[i-1][j]; 来给该位置赋值。