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

如何用for、if、while循环实现特定星号三角图案(R语言)

星号三角图案生成的R代码解决方案

需求说明

需要仅使用for、if和while循环生成特定星号三角图案:

  • 当变量h为1时,输出1行单个星号;
  • 当h为2时,先输出h=1的图案,再输出2行的星号三角;
  • 当h为5时,依次输出h=1到4的图案,最后输出h=5的5行星号三角。

错误代码及输出

错误代码

cat("enter an integer:")
h <- scan(n=1)
for(i in 1:h){
for(j in 1:h){
  for(k in 1:h){
  if(i >= k)
    cat("*")
  }
  cat("\n")
  }
}

h=5时的错误输出

*
*
*
*
*
**
**
**
**
**
***
***
***
***
***
****
****
****
****
****
*****
*****
*****
*****
*****

问题分析

原代码的第二层循环j in 1:h导致每个星号行重复了h次,比如i=1时连续输出5行单星,而非仅输出1次h=1的图案,完全不符合需求的累加式子图案输出逻辑。

正确代码

cat("enter an integer:")
h <- scan(n = 1)

# 遍历每个子图案的高度(从1到h)
for (m in 1:h) {
  # 生成当前子图案的m行
  for (row in 1:m) {
    # 每行输出row个星号
    for (star in 1:row) {
      cat("*")
    }
    cat("\n")
  }
}

效果验证(h=5时)

输出结果为:

*
*
**
*
**
***
*
**
***
****
*
**
***
****
*****

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 14:53:33