fun main(args: Array<String>) {
sumOfDigits("12345");
}
fun sumOfDigits(n: String) {
val arr = n.toList()
val arrOfInt = arr.map{ it.toString().toInt() }
print(arrOfInt.sum())
}
我的任务是找出数字的和和平均值:
Sample Output:
12345
15 3.00
我对如何编码感到困惑。谁能给我简单和替代代码以上。
private fun sumAndAvgOfDigits(n: String) {
val arrOfInt= n.map {"$it".toInt()}
print("${arrOfInt.sum()} ${arrOfInt.average()}")
}
@JvmStatic
fun main(args: Array<String>) {
sumAndAvgOfDigits("12345")
}
另一个解决方案:
private fun sumAndAvgOfDigits(n: String) {
val arr = n.toList()
val sum = arr.sumBy { "$it".toInt() }
val avg = (sum.toDouble()/arr.size)
print("$sum $avg")
}
使用sumByDouble和一个简单的count变量也可以为您工作。
例如:
val str = "12345"
var count = 0
val sumOfStr = str.sumByDouble{
count++
it.toString().toDouble()
}
和平均值
val avg = sumOfStr / count
由于sumByDouble
在String
上,选择器函数看起来像selector: (Char) -> Int
和toDouble()
在Char
上会给你ascii值,这就是为什么it
被转换回String
为了完成你的任务,你必须执行以下步骤:
- 将字符串转换为整数数组。
- 查找数组的和
- 使用数组长度查找avg
这里有一个代码来帮助你更多
fun main() {
sumOfDigits("12345")
}
fun sumOfDigits(str: String) {
val arr = str.toList().map({it.toString().toInt()})
val sum = arr.sum()
val length = arr.size
val avg = sum / length
print(sum.toString() + ' ' + avg.toString())
}
下面是一个for循环的例子。你看到我们上面使用的语法叫做lambda表达式,这是kotlin的方法。试着学习它。这会对你有很大的帮助。
fun main() {
sumOfDigits("12345")
}
fun sumOfDigits(str: String) {
val strArray = str.toList()
var sum = 0
for (i in strArray) {
sum += i.toString().toInt()
}
val length = strArray.size
val avg = sum / length
print(sum.toString() + ' ' + avg.toString())
}
在Kotlin中查找数字和的简单方法(使用While循环)
fun main(args: Array<String>) {
var x = 123
var sum = 0
while (x > 0) {
var y = x % 10
sum += y
x /= 10
}
println(sum)
}
这里的答案是:6