数字和

Posted on By ᵇᵒ

求一个整数的数字和

迭代

fun digitSum(n: Int): Int {
    var num = n
    var sum = 0
    while (num > 0) {
        sum += num % 10
        num /= 10
    }
    return sum
}

递归

tailrec fun digitSum(n: Int, acc: Int = 0): Int {
    return if (n == 0) acc else digitSum(n / 10, acc + (n % 10))
}

字符串

fun digitSum(n: Int): Int {
    return n.toString().sumOf { it - '0' }
}