我在 JetBrains Academy 有一個任務:“撰寫一個程式,讀取一個未排序的整數串列和兩個數字:P 和 M。程式需要檢查 P 和 M 是否出現在串列中。
第一行包含串列的大小。接下來的 N 行包含串列的元素。最后一行包含兩個由空格分隔的整數 P 和 M。
如果兩個數字都出現在串列中,則需要列印 YES,否則 - NO。”
我的代碼:
fun main() {
val size = readln().toInt()
val mutList: MutableList<Int> = mutableListOf()
val (a, b) = readln().split(" ")
val p: Int = a.toInt()
val m: Int = b.toInt()
for (i in 0 until size) {
mutList.add(readln().toInt())
}
if(p in mutList || m in mutList) {
print("YES")
} else {
print("NO")
}
}
我有這個錯誤:
Error:
Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 1, Size: 1
at java.base/java.util.Collections$SingletonList.get(Collections.java:4849)
at MainKt.main(main.kt:4)
at MainKt.main(main.kt)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.jetbrains.kotlin.runner.AbstractRunner.run(runners.kt:70)
at org.jetbrains.kotlin.runner.Main.run(Main.kt:188)
at org.jetbrains.kotlin.runner.Main.main(Main.kt:198)
我是 Kotlin 和編碼的新手,但我一直在努力學習一些東西。我的代碼有什么問題?
uj5u.com熱心網友回復:
根據問題,您需要在 P 和 M 之前輸入串列元素。此外,當兩個數字都出現在串列中時,您必須列印“YES”,即您需要使用&&而不是||.
fun main() {
val size = readln().toInt()
val list = List(size) { readln().toInt() }
val (p, m) = readln().split(" ").map { it.toInt() }
if(p in list && m in list) {
println("YES")
} else {
println("NO")
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/511611.html
標籤:科特林
