You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C# 如何修改静态类中的值来动态调整帕斯卡三角的生成行数

第一步:修改StaticClass的n的修饰符

原来的n用了const修饰,属于编译期常量,运行过程中无法修改,需要改成可读写的静态变量:

class StaticClass
{
    // 把const改成static int,保留默认值15
    public static int n = 15;
}

第二步:调整Constructor类的数组初始化逻辑

原来的triangle数组是在类定义时就初始化,会在程序启动时就用默认的n值创建数组,无法响应用户输入的新n值,需要把初始化逻辑挪到构造函数中:

class Constructor
{
    // 只声明数组,不在这里初始化
    int[][] triangle;
    public Constructor(int n)
    {
        // 拿到传入的n之后再初始化数组
        triangle = new int[n][];
        xmethod(n);
    }
    public void xmethod(int n)
    {
        for (int row = 0; row < triangle.Length; row++)
        {
            triangle[row] = new int[row + 1];
            for (int k = 0; k < triangle[row].Length; k++)
            {
                if (k > 0 && k < triangle[row].Length - 1)
                    triangle[row][k] = triangle[row - 1][k - 1] + triangle[row - 1][k];
                else
                    triangle[row][k] = 1;
                Console.Write(triangle[row][k] + "\t");
            }
            Console.WriteLine();
        }
    }
}

额外修正:原来的逻辑判断里用了单&位运算符,这里改成双&&逻辑与运算符更符合业务场景

第三步:修改Program.cs的主逻辑,增加用户输入处理

在Main方法中先输出提示、接收并校验用户输入,再赋值给StaticClass.n,最后生成帕斯卡三角:

class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine("How long do you want me to generate");
        // 循环校验输入,直到用户输入合法的正整数
        while (!int.TryParse(Console.ReadLine(), out int inputN) || inputN <= 0)
        {
            Console.WriteLine("输入不合法,请输入正整数:");
        }
        // 赋值给StaticClass的n
        StaticClass.n = inputN;
        // 生成帕斯卡三角
        Constructor ct = new Constructor(StaticClass.n);
        Console.ReadKey();
    }
}

内容的提问来源于stack exchange,提问作者Xm Par

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 14:12:02