蓝桥杯基础练习--杨辉三角

问题描述

杨辉三角形又称Pascal三角形,它的第i+1行是(a+b)i的展开式的系数。

  

它的一个重要性质是:三角形中的每个数字等于它两肩上的数字相加。

  

下面给出了杨辉三角形的前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<iostream>
 2 #include<string.h>
 3 using namespace std;
 4  int main()
 5  {
 6      int arr[55][55];
 7      int n,k;
 8      cin>>n; 
 9     
10      int i,j;
11      for(i=0;i<55;i++)
12      {
13          for(j=0;j<55;j++)
14              arr[i][j]=0;
15      }
16     
17      for(i=1;i<=n;i++)//杨辉三角是很基础的东西,但是你常在这里犯错,在本题里如果内部判断代码不变的话,这里1到n的范围与0到n-1是不相同的
18      {
19          for(j=1;j<=i;j++)//这里的i一定要取到等号,手写代码时要注意
20          {
21              if(i==1&&j==1)
22                  arr[i][j]=1;
23              else if(i-1>=0&&j-1>=0)
24              arr[i][j]=arr[i-1][j-1]+arr[i-1][j];
25                }
28      }
29     for(i=1;i<=n;i++)
30     {
31         for(j=1;j<=n;j++)
32             if(arr[i][j]!=0)
33             {
34                 if(j==1)
35                 printf("%d",arr[i][j]);
36                 else
37                 printf(" %d",arr[i][j]);
38             }
39         cout<<endl;
40     }
41 
42      return 0;
43  }
原文地址:https://www.cnblogs.com/curo0119/p/8309633.html