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

C# 如何将输出三角形的三层for循环优化为两层循环

C# 三角形输出代码循环层数优化方案

原代码逻辑说明

原代码的实际输出规则为:输入整数input后,共输出input行内容,每行由「i个+拼接input-i个空格」的子串重复input次后换行。
原三层循环中最内层的ch循环仅用来生成固定格式的单段子串,可直接简化省去,最终实现两层循环结构,运行逻辑、输出效果和原代码完全一致。

优化后代码(两种实现)

实现1:使用内置字符串构造方法(性能最优)

var input = Convert.ToInt32(Console.ReadLine());
// 第一层循环:控制输出的行数
for (var i = 1; i <= input; i++)
{
    // 第二层循环:控制单段子串的重复次数
    for (var tr = 1; tr <= input; tr++)
    {
        // 直接生成指定长度的+和空格子串,省去最内层字符遍历循环
        Console.Write(new string('+', i) + new string(' ', input - i));
    }
    Console.WriteLine();
}

实现2:纯循环实现(不依赖内置字符串构造)

var input = Convert.ToInt32(Console.ReadLine());
for (var i = 1; i <= input; i++)
{
    // 第二层循环:直接遍历单行所有需要输出的字符,总长度为input*input
    for (var pos = 1; pos <= input * input; pos++)
    {
        // 取模计算当前位置对应子串内的偏移,判断输出+还是空格
        var chOffset = pos % input == 0 ? input : pos % input;
        Console.Write(chOffset <= i ? "+" : " ");
    }
    Console.WriteLine();
}

内容的提问来源于stack exchange,提问作者foder.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 06:06:05