检查可被 2 整除的数字并在 Kotlin 中打印它们
Check numbers divisible by 2 and print them in Kotlin
作为我的 Kotlin 课程的一部分,我正在处理一项任务,而且我一直致力于此。我觉得这很简单,但我看不到。以下是如何完成此任务的说明:
给你一个整数列表。遍历给定的 List 并在一行中打印可被 2 整除的元素。
示例输入:
8 11 13 2
示例输出:
8 2
这是我的代码(我已经打印了数字列表以查看提供给我的数字,因为我没有选择它们,它们是课程自动给出的,我没有看到):
fun solution(numbers: List<Int>) {
var divisible = intArrayOf()
for (i in 0..numbers.lastIndex) {
if (numbers[i] % 2 == 0){
divisible = intArrayOf(numbers[i])
}
}
println("$numbers")
println("${divisible.joinToString("")}")
这是我的输出:
[8, 11, 13, 2]
2
我想我已经完成了检查数字是否能被 2 整除的部分,但我不完全理解为什么它只打印 2,如果能被 2 整除为什么不先打印 8。起初我正在为可整除变量使用列表而不是数组,所以我认为可能是这样,因为如果我没记错的话列表是不可变的,但看起来不是这样。如果有人能向我解释我做错了什么,我将不胜感激!
您在每个可被 2 整除的项目上重写结果持有者 (divisible = intArrayOf()
),这就是为什么只有最后一个匹配项存储在 divisible
数组中。
而不是
divisible = intArrayOf(numbers[i])
你应该写
divisible.add(numbers[i]) // no need to re-initialize
UPDATE:我错过了那个数组没有 add
操作。如果合适,您可以使用列表而不是数组,以便 add
操作可用:
var divisible = mutableListOf<Int>()
P.S。使用 Kotlin 有一个更短的方法:
fun solution(numbers: List<Int>) {
val divisible = numbers.filter { it % 2 == 0 }
println("$numbers")
println("${divisible.joinToString(" ")}")
}
您可以将过滤器与谓词一起使用
示例:
val list = listOf(8,2,11,15)
使用 kotlin 解决方案非常简单
val result = list.filter { it % 2 == 0 }
作为我的 Kotlin 课程的一部分,我正在处理一项任务,而且我一直致力于此。我觉得这很简单,但我看不到。以下是如何完成此任务的说明:
给你一个整数列表。遍历给定的 List 并在一行中打印可被 2 整除的元素。
示例输入:
8 11 13 2
示例输出:
8 2
这是我的代码(我已经打印了数字列表以查看提供给我的数字,因为我没有选择它们,它们是课程自动给出的,我没有看到):
fun solution(numbers: List<Int>) {
var divisible = intArrayOf()
for (i in 0..numbers.lastIndex) {
if (numbers[i] % 2 == 0){
divisible = intArrayOf(numbers[i])
}
}
println("$numbers")
println("${divisible.joinToString("")}")
这是我的输出:
[8, 11, 13, 2]
2
我想我已经完成了检查数字是否能被 2 整除的部分,但我不完全理解为什么它只打印 2,如果能被 2 整除为什么不先打印 8。起初我正在为可整除变量使用列表而不是数组,所以我认为可能是这样,因为如果我没记错的话列表是不可变的,但看起来不是这样。如果有人能向我解释我做错了什么,我将不胜感激!
您在每个可被 2 整除的项目上重写结果持有者 (divisible = intArrayOf()
),这就是为什么只有最后一个匹配项存储在 divisible
数组中。
而不是
divisible = intArrayOf(numbers[i])
你应该写
divisible.add(numbers[i]) // no need to re-initialize
UPDATE:我错过了那个数组没有 add
操作。如果合适,您可以使用列表而不是数组,以便 add
操作可用:
var divisible = mutableListOf<Int>()
P.S。使用 Kotlin 有一个更短的方法:
fun solution(numbers: List<Int>) {
val divisible = numbers.filter { it % 2 == 0 }
println("$numbers")
println("${divisible.joinToString(" ")}")
}
您可以将过滤器与谓词一起使用
示例:
val list = listOf(8,2,11,15)
使用 kotlin 解决方案非常简单
val result = list.filter { it % 2 == 0 }