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

多输入分支下重复For Loop的简化实现方案咨询

优化重复循环的解决方案

你可以通过提取循环的可变参数来避免重复编写相同的循环代码。观察你的代码会发现,不同i值对应的循环逻辑完全一致,唯一的区别是外层for循环中a的起始值:

  • 当i=8时,起始值是1(即9-8)
  • 当i=7时,起始值是2(即9-7)
  • 当i=2时,起始值是7(即9-2)

由此可以总结出起始值的计算公式:start = 9 - i,基于这个规律就能把所有分支整合为一段通用代码,同时修正原代码中条件判断的错误(0 <= i <=8在C++中不符合预期,需要拆分为i >= 1 && i <=8)。

优化后的代码如下:

#include <iostream>
using namespace std;

int main()
{
    int a, b, c, i;

    std::cout << "Please enter a number from 1 to 8: ";
    std::cin >> i;
    std::cout << "The value you entered is " << i << "\n";

    if (i >= 1 && i <= 8) {
        int start = 9 - i;
        for (a = start; a <= 8; a++)
        {
            std::cout << "\n";

            for (c = 7; c >= a; c--) {
                std::cout << " ";
            }

            for (b = 1; b <= a; b++) {
                std::cout << "#";
            }
        }
    }

    return 0;
}

关键优化点

  1. 提取可变参数:通过公式9 - i计算循环起始值,统一所有分支的循环逻辑
  2. 修正条件判断:将错误的0 <= i <=8改为i >=1 && i <=8,确保只有输入1-8的数值时才执行循环
  3. 精简变量:删除了未使用的d,e,f,g,h变量,让代码更简洁

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 21:25:06