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

如何用Kotlin实现空心直角三角形与数字直角三角形?

修正方案:实现两种直角三角形输出

1. 空心直角三角形实现

原代码的核心问题是循环逻辑混乱:在for循环内每次打印*后立即换行,同时在for循环中自增外层循环变量i,导致输出完全偏离预期。以下是修正后的代码:

import kotlin.io.*

fun main() {
    print("Enter an integer: ")
    val n = readLine()!!.toInt()

    // 遍历每一行
    for (i in 1..n) {
        // 遍历每行的每个位置
        for (j in 1..i) {
            // 第一行、最后一行,或是每行的首尾位置打印*,其余打印空格
            if (i == 1 || i == n || j == 1 || j == i) {
                print("*")
            } else {
                print(" ")
            }
        }
        // 每行结束换行
        println()
    }
}

逻辑说明:

  • 外层循环控制总行数,从1到输入的整数n
  • 内层循环控制每行的字符输出:仅在第一行、最后一行,或者当前位置是该行的第一个/最后一个字符时打印*,其余位置打印空格,实现空心效果
  • 每行所有字符打印完成后执行换行

2. 数字直角三角形实现

直接通过双层循环实现,外层控制行数,内层按顺序打印对应数字:

import kotlin.io.*

fun main() {
    print("Enter an integer: ")
    val n = readLine()!!.toInt()

    for (i in 1..n) {
        for (j in 1..i) {
            print(j)
        }
        println()
    }
}

逻辑说明:

  • 外层循环i从1到n,代表当前行数
  • 内层循环j从1到i,依次打印数字j,完成当前行的数字序列
  • 每行数字打印完成后换行

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 14:25:22