杨辉三角形

在我讲解杨辉三角形的时候,我们先来认识一下杨辉三角形

杨辉三角形_第1张图片
图一

1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
图二

杨辉三角形是一个不能少于三行的数字群,我们来看图二来分析这个杨辉三角形会更好一点。从第二行(我们是从第0行来开始计数的)的第一列开始,(也就是非1的部分),每个数都是该数的左上角数与该数的正上面的的数之和。
我们进一步分析,只用第0列和
行号和列号相同的时候数值才是1。

因此我们写代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace yhTriangle
{
    class Program
    {
        /*                           1
         *                         1   1
         *                       1   2   1
         *                     1   3   3   1
         *                   1   4   6   4   1
         */
        static void Main(string[] args)
        {
            Triangle(9);
            Console.ReadLine();
        }
        //定义一个函数
        static void Triangle(int n) {
            //定义一个数组,用来存放数据
            int[,] tri = new int[n, n];
            //外循环控制行数
            for (int i = 0; i < n; i++) {
                //内循环控制列数
                for (int j = 0; j <= i; j++) {
                    //当行号和列号相同的时候,我们来存放1
                    if (j == 0 || i == j)
                    {
                        tri[i, j] = 1;
                    }
                    //否则我们存放tri[i-1, j-1] 与tri[i-1, j]之和
                    else if((j>0 && j1, j-1] + tri[i-1, j];

                    }
                }
            }
            //打印杨辉三角形
            for (int i = 0; i < n; i++) {
                for (int k = 0; k < n - i - 1; k++)
                {
                    Console.Write(" ");
                }
                for (int j = 0; j <= i; j++)
                {

                     Console.Write(tri[i, j] + " ");
                }
                Console.WriteLine();
            }
        } 
    }
}

你可能感兴趣的:(C#)