如何在R语言中不使用rep函数,用for循环实现指定重复字符输出?
问题描述
我需要实现以下代码的功能,但不能使用rep()函数:
for (i in 1:4){ print(paste(rep(LETTERS[i], i), collapse = "")) }
期望输出:
- [1] "A"
- [1] "BB"
- [1] "CCC"
- [1] "DDDD"
我尝试了嵌套循环,但输出不符合预期:
for (i in 1:4) { for (j in 1:i) { print(paste(LETTERS[i])) } cat('\n') }
实际输出:
- [1] "A"
- [1] "B"
- [1] "B"
- [1] "C"
- [1] "C"
- [1] "C"
- [1] "D"
- [1] "D"
- [1] "D"
- [1] "D"
解决方案
问题出在内部循环每次都调用print(),导致单个字母被多次单独输出。正确的做法是先把重复的字母拼接成完整字符串,再一次性打印。
修正后的嵌套循环代码
for (i in 1:4) { # 初始化空字符串存储当前行结果 output_str <- "" for (j in 1:i) { # 逐次将当前字母追加到字符串末尾 output_str <- paste0(output_str, LETTERS[i]) } # 拼接完成后统一打印整行字符串 print(output_str) }
运行后将得到期望的输出:
- [1] "A"
- [1] "BB"
- [1] "CCC"
- [1] "DDDD"
内容的提问来源于stack exchange,提问作者Diego
相关产品推荐
相关产品推荐

