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

求助:使用R语言绘制带中间空格的星号图案

解决R语言绘制带中间空格的星号图案问题

你需要生成的目标图案是:




你的原代码只处理了前导空格和连续星号,没有考虑部分行需要在星号中间添加空格的逻辑,所以无法得到正确结果。

直接实现方案(固定图案)

如果是生成固定的这个图案,最直接的方式是逐行定义内容后打印:

draw_pattern <- function() {
  lines <- c(
    "*********",
    " *** *** ",
    "  *****  ",
    "   * *   ",
    "    *    "
  )
  for (line in lines) {
    cat(line, "\n")
  }
}

# 调用函数生成图案
draw_pattern()

动态生成方案(基于行规律)

如果想要通过逻辑动态生成(而非硬编码每行内容),可以分析每行的前导空格和星号结构规律:

  • 前导空格数:每行是(行号-1)*2个空格
  • 星号部分根据行号有不同的结构

对应的代码:

draw_pattern <- function() {
  total_rows <- 5
  for (row in 1:total_rows) {
    # 生成前导空格
    leading_spaces <- strrep(" ", (row - 1) * 2)
    # 根据行号匹配对应的星号结构
    star_segment <- switch(row,
      "1" = strrep("*", 9),
      "2" = "*** ***",
      "3" = strrep("*", 5),
      "4" = "* *",
      "5" = "*"
    )
    # 拼接并打印整行
    cat(leading_spaces, star_segment, "\n", sep = "")
  }
}

draw_pattern()

运行上面任意一段代码,都能得到你需要的星号图案。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 21:30:43