打印杨辉三角

每日一道算法题之打印杨辉三角

  • 一、题目描述
  • 二、思路
  • 三、C++代码

一、题目描述

给出 n(n≤20),输出杨辉三角的前 n 行。

C++程序要求输入输出格式如下:

输入:3           输出:1
                       1 1
                       1 2 1

二、思路

  杨辉三角实际上是一个找规律的问题,观察发现边界上的值永远是1,中间的数实际上等于它上面一行左侧两个数之和,即a[i][j] = a[i - 1][j - 1] + a[i - 1][j];因此可以通过两个for循环进行赋值,第一个for循环代表杨辉三角的层数,第二个for循环用于给中间元素进行赋值。
  以上便是大致思路。

三、C++代码

#include
using namespace std;

//杨辉三角形 

int main(){
	
  int n;
  cin>>n;
  
  int a[n][n]; // 定义二维数组
    for (int i = 0; i < n; i++) {
        a[i][i] = a[i][0] = 1; // 边界赋值为1
        for (int j = 1; j < i; j++)
            a[i][j] = a[i - 1][j - 1] + a[i - 1][j]; // 其他元素的值
    }
 
    // 打印杨辉三角
    for (int i = 0; i < n; i++) {
        for (int j = 0; j <= i; j++)
            cout << a[i][j] << " ";
        cout << endl;
    }

   
    
} 

你可能感兴趣的:(算法,c++,算法)