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

如何优化输出指定固定形状的C++代码并合并条件分支?

优化C++形状输出代码:合并冗余else if分支

先看你要输出的形状,原代码的多个else if其实围绕「x+y为特定偶数」的规律,我们可以把所有输出#的条件合并成一个表达式,去掉冗余分支。

优化后的代码

#include <iostream>
using namespace std;

int main() {
    for (int x = 1; x < 10; x++) {
        for (int y = 1; y < 6; y++) {
            // 合并所有输出#的条件
            if (x == y || (x + y >= 4 && x + y <= 10 && (x + y) % 2 == 0 && (x + y == 10 || x > y))) {
                cout << "#";
            } else {
                cout << ".";
            }
        }
        cout << endl;
    }
    return 0;
}

思路解析

原代码的分支对应两种核心情况:

  1. 主对角线:x == y,直接输出#
  2. 一组反对角线:x + y等于4、6、8、10,其中:
    • 当x + y = 10时,不管x和y的大小关系都输出#(对应形状最右侧的对角线)
    • 当x + y为4、6、8时,只有x > y时才输出#(对应形状内部的几条短对角线)

用统一表达式覆盖这些情况:

  • x + y >=4 && x + y <=10限定范围,包含4、6、8、10这几个目标值
  • (x + y) % 2 ==0筛选出偶数,匹配目标值的特性
  • (x + y ==10 || x > y)区分两种子情况:要么是最外层反对角线,要么是内部需要x大于y的短对角线

这样就把分散的else if分支合并到初始的if条件中,代码更简洁且逻辑清晰。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 04:10:31