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

求助:编写生成指定格式数字三角形的Shell脚本

解决Shell脚本生成指定数字三角形的问题

你的核心问题是数字个数的递增规律不符合要求,原脚本里每行数字个数等于行号(1→2→3→4→5→6),但目标格式是1→2→4→6→8→10,同时需要保证每行总长度一致来实现右对齐。以下是调整后的脚本:

t=6
# 总行数固定为6
for ((i=1; i<=6; i++)); do
    # 计算当前行的数字个数
    if ((i == 1)); then
        count=1
    else
        count=$((2*(i-1)))
    fi
    # 计算前置空格数:每行总长度10,减去数字个数
    spaces=$((10 - count))
    # 打印对应数量的空格
    printf "%${spaces}s" ""
    # 打印count次当前数字t
    for ((j=1; j<=count; j++)); do
        printf "$t"
    done
    # 数字递减
    t=$((t-1))
    echo ""
done

关键调整说明:

  • 数字个数计算:第一行保留1个数字,从第二行开始,数字个数变为2*(行号-1),以此实现2→4→6→8→10的递增规律
  • 空格对齐:通过10 - count计算前置空格数,确保每行总长度固定为10,实现右侧对齐的效果

运行上述脚本后,输出结果与目标完全一致:

6
        55
      4444
    333333
  22222222
1111111111

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 20:35:25