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

JavaScript实现Y形图案问题:底部元素未居中(仅支持奇数尺寸)

Y形图案代码底部未居中的问题排查与修复

你编写的Y形图案代码中,底部部分未居中的问题出在底部列的判断条件错误,同时中间列的判断逻辑也存在问题:

原代码问题分析

  1. 对于底部行(i >= size / 2),你错误地使用了j === 0作为判断条件,这会让底部的O显示在最左侧,而非居中位置。
  2. 中间列的判断j === size / 2不成立:因为size是奇数,size/2是小数(比如size=5时是2.5),而j是整数索引,这个条件永远不会触发,导致原本应该居中的底部行没有正确显示。

修复后的代码

const char = "Y";
const size = 5; // 仅支持奇数
let output = "";
if (char === 'Y') {
  const mid = Math.floor(size / 2); // 计算中间列索引,size为奇数时是整数
  for (let i = 0; i < size; i++) {
    for (let j = 0; j < size; j++) {
      // 修正条件:顶部的两条斜线 + 中间列的所有行
      if (
        (i === j && i < mid) || 
        (i + j === size - 1 && i < mid) || 
        (j === mid)
      ) {
        output += 'O';
      } else {
        output += ' ';
      }
    }
    output += '\n';
  }
}

console.log(output);

修复说明

  • 新增mid变量,通过Math.floor(size/2)计算出中间列的整数索引(比如size=5时,mid=2),避免小数判断的问题。
  • 底部行的判断直接合并到j === mid的条件中,因为Y形的底部就是中间列的延续,无需单独区分顶部和底部。
  • 简化了条件逻辑,让代码更易读。

输出结果

O   O
 O O 
  O  
  O  
  O  

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 15:53:14