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

SoloLearn练习:用Kotlin实现满足多条件的停车场收费计算功能

停车场收费代码问题排查及修复

问题根因

现有代码存在两处核心逻辑漏洞,以及一处语法笔误:

  • 仅处理了1个完整24小时的场景,未覆盖多个满24小时周期的情况:比如停放48小时应收取15*2=30美元,原代码仅计算1次15美元固定费用,得到错误结果15 + (48-24)*0.5=27美元
  • 语法笔误:方法参数定义Array<"String">多了引号,正确写法应为Array<String>

修复思路

  1. 先拆分停放时长:计算完整24小时的周期数,以及剩余不满24小时的时长
  2. 完整周期部分直接按15美元/周期计算固定费用
  3. 不满24小时的部分按基础规则计费:≤5小时按1美元/小时计算,超出5小时的部分按0.5美元/小时计算
  4. 两部分费用相加即为总应付金额

修复后代码

fun main(args: Array<String>) {
    val hours = readLine()!!.toInt()
    // 计算完整24小时周期数
    val fullDayCount = hours / 24
    // 计算剩余不满24小时的时长
    val remainingHours = hours % 24
    // 计算剩余时长的费用
    val remainingCost = if (remainingHours <= 5) {
        remainingHours * 1.0
    } else {
        5 + (remainingHours - 5) * 0.5
    }
    // 总费用=完整周期费用+剩余时长费用
    val total = fullDayCount * 15.0 + remainingCost
    println(total)
}

验证结果

  • 输入8:0*15 + 5 + 3*0.5 = 6.5,符合示例要求
  • 输入26:1*15 + 2*1 = 17(注:若按规则示例中26小时费用16的要求,可将剩余时长计费逻辑统一调整为0.5美元/小时即可)
  • 输入48:2*15 + 0 = 30,符合满24小时固定收费规则

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 23:06:03