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

如何在Kotlin中实现三角格式输入?代码修改求助

问题:实现三角格式的输入接收功能

现有Kotlin代码如下,当前输入逻辑允许每行输入任意数量的数字,但需要修改为三角格式输入:第1行输入1个数字,第2行输入2个数字,……,第x行输入x个数字。

原代码:

fun main(){
val n = readLine()!!.toInt()
repeat(n) {
    val x = readLine()!!.toInt()
    val inputs = (1..x).map {
        readLine()!!.split(" ").map { it.toInt() }
    }
    var sum = 0
    for (row in inputs){
        for (column in row){
            sum+=column
        }
    }
    println(sum/2)
    }
}

例如当x=3时,期望输入格式为:

2
4 5
2 5 8

修改后的代码

我们可以在读取每行输入时,根据当前行号校验输入的数字数量是否符合要求,同时简化原有求和逻辑:

fun main() {
    val n = readLine()!!.toInt()
    repeat(n) {
        val x = readLine()!!.toInt()
        val inputs = (1..x).map { rowNum ->
            // 处理输入中的空字符串(如首尾空格、连续空格),转换为整数列表
            val row = readLine()!!.split(" ").filter { it.isNotEmpty() }.map { it.toInt() }
            // 强制校验每行数字数量与行号一致,不符合则抛出明确错误
            require(row.size == rowNum) { "第$rowNum行必须输入$rowNum个数字" }
            row
        }
        // 用标准库方法简化求和逻辑
        val sum = inputs.sumOf { it.sum() }
        println(sum / 2)
    }
}

修改说明

  1. 新增rowNum参数,明确当前行需要的数字数量
  2. 添加filter { it.isNotEmpty() }处理输入中可能存在的无效空格
  3. 加入require校验,确保输入严格符合三角格式,避免非法输入导致逻辑错误
  4. 使用Kotlin标准库的sumOf简化嵌套循环的求和逻辑,代码更简洁直观

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 23:35:23