杨辉三角形是一个右数字排列成的三角形数表,其最本质的特征就是它的两条变是右数字1组成的,而其余数则等于它上方的两个数之和。每种语言都能实现杨辉三角形Pascal's triangle的打印输出,都不止一种方法,这里示范C#的两种方法。
- using System;
- namespace Csharp07
- {
- class Program
- {
- static void Main(string[] args)
- {
- //定义一个10行的二维数组
- int[][] Array_int = new int[10][];
- //在数组中记录杨辉三角形的值
- //遍历数组
- for (int i=0;i<Array_int.Length;i++)
- {
- //定义二维数组的列数
- Array_int = new int[i + 1];
- //遍历二维数组的列数
- for(int j=0;j<Array_int.Length;j++)
- {
- //判断如果是数组的前两行
- if (i<=1)
- {
- //设置为1
- Array_int[j] = 1;
- continue;
- }
- else
- {
- //如果是行首和行尾
- if(j==0 || j== Array_int.Length-1)
- //设置为1
- Array_int[j] = 1;
- //否则根据杨辉三角形算法
- else
- Array_int[j] = Array_int[i - 1][j - 1] + Array_int[i - 1][j];
- }
- }
- }
- //输出杨辉三角形
- for (int i= 0;i<= Array_int.Length - 1;i++)
- {
- //循环控制每行前面打印的空格数
- for(int k=0;k<=Array_int.Length-i;k++)
- {
- Console.Write(" ");
- }
- //循环控制每行打印的数据
- for(int j=0;j<Array_int.Length;j++)
- {
- Console.Write("{0} ", Array_int[j]);
- }
- //换行
- Console.WriteLine();
- }
- Console.ReadLine();
- }
- }
- }
复制代码
- using System;
- //杨辉三角形
- namespace CSHARPEX06
- {
- class Program
- {
- static void Main(string[] args)
- {
- const int N = 10;
- //声明交错数组
- int[][] pascal = new int[N][];
- //每一行再次分配空间第一行,第二行 2,。。。。
- for (int i = 0; i < N; i++)
- //第 0 行 就是杨辉三角形的 1
- pascal = new int[i + 1];
- //使用交错数组
- //存储,赋值
- pascal[0][0] = 1;
- for(int i=1;i<N;i++)
- {
- //开头,结尾都是1
- pascal[0] = 1;
- pascal = 1;
- //中间的
- for (int j = 1;j< i; j++)
- {
- pascal[j] = pascal[i - 1][j - 1] + pascal[i - 1][j];
- }
- }
- //循环遍历打印输出
- for (int i = 0; i<N; i++)
- {
- for(int k = 0;k<N -i; k++)
- {
- Console.Write(" ");
- }
- for(int j=0;j< pascal.Length; j++)
- //循环控制每行前打印的空格数
- {
- Console.Write("{0} ", pascal[j]);
- }
- Console.WriteLine();
- }
- Console.ReadLine();
- }
- }
- }
复制代码
|