本帖最后由 apples1949 于 2022-7-31 16:17 编辑
用Excel制作的简单数组参考表格
参考用Excel制作的简单数组参考表格
源码
[Asm] 纯文本查看 复制代码 using System;
namespace _20220727
{
internal class Program
{
static void Main(string[] args)
{
Console.Write("请输入杨辉三角的行数(必须大于2):");
int yhsjHS = Convert.ToInt32(Console.ReadLine());//键盘输入数组行数,即y
int yhsjLS = (yhsjHS + 1) * 2;//计算数组长度,即x
int[,] yhsj = new int[yhsjHS + 1, yhsjLS];//杨辉三角以数组角度看,第0行只有一个1,得从第一行开始算
for (int x = 1, y = yhsjHS; y >= 0; x++, y--)//杨辉三角左斜边都是1
{
yhsj[y, x] = 1;
}
for (int x = yhsjLS - 1, y = yhsjHS; y > 0; x--, y--)//杨辉三角右斜边都是1
{
yhsj[y, x] = 1;
}
for (int x = 3, y = yhsjHS; y > 1; x++, y--)//杨辉三角内部左侧自然数
{
yhsj[y, x] = y;
}
for (int x = yhsjLS - 3, y = yhsjHS; y > 1; x--, y--)//杨辉三角内部右侧自然数
{
yhsj[y, x] = y;
}
for (int y = 4; y <= yhsjHS; y++)//内部计算
{
for (int x = (yhsjHS - y + 4); x <= (yhsjHS + y); x++)
{
yhsj[y, x] = yhsj[y - 1, x - 1] + yhsj[y - 1, x + 1];
}
}
for (int y = 0; y <= yhsjHS; y++)//打印数组
{
for (int x = 0; x < yhsjLS; x++)
{
if (x == yhsjLS - 1)//换行判断
{
if (yhsj[y, x] == 0)//如果数组值为空(数组值不赋值默认为0),则输出为空,否则输出数组值。下同
{
Console.WriteLine(" ");
}
else
{
Console.WriteLine(yhsj[y, x]);
}
}
else
{
if (yhsj[y,x]==0)
{
Console.Write(" ");
}
else
{
Console.Write(yhsj[y, x]);
}
}
}
}
}
}
}
输出结果
懒得折腾格式了
懒得折腾格式了
学习资料的代码
|