我想知道是否有一種方式來處理一個更有效的方式(n> 0)循環,我有一個小的Scala應用程序,計數等於K從1到N的範圍內: 例如30和3將返回4 [3,13,23,30]scala如何減少,而n> 0
object NumKCount {
def main(args: Array[String]): Unit = {
println(countK(30,3))
}
def countKDigit(n:Int, k:Int):Int = {
var num = n
var count = 0
while (num > 10) {
val digit = num % 10
if (digit == k) {count += 1}
num = num/10
}
if (num == k) {count += 1}
count
}
def countK(n:Int, k:Int):Int = {
1.to(n).foldLeft(0)((acc, x) => acc + countKDigit(x, k))
}
}
我在尋找一種方法來定義該函數countKDigit使用純粹的功能的方法
你可以用count(_。asDigit == k)替換'filter(c => c.asDigit == k).length'' –