1837. Sum of Digits in Base K

Given an integer n (in base 10) and a base k, return the sum of the digits of n after converting n from base 10 to base k.

After converting, each digit should be interpreted as a base 10 number, and the sum should be returned in base 10.

 

Example 1:

Input: n = 34, k = 6
Output: 9
Explanation: 34 (base 10) expressed in base 6 is 54. 5 + 4 = 9.

Example 2:

Input: n = 10, k = 10
Output: 1
Explanation: n is already in base 10. 1 + 0 = 1.

 

Constraints:

  • 1 <= n <= 100
  • 2 <= k <= 10

Rust Solution

struct Solution;

impl Solution {
    fn sum_base(mut n: i32, k: i32) -> i32 {
        let mut res = 0;
        while n > 0 {
            res += n % k;
            n /= k;
        }
        res
    }
}

#[test]
fn test() {
    let n = 34;
    let k = 6;
    let res = 9;
    assert_eq!(Solution::sum_base(n, k), res);
    let n = 10;
    let k = 10;
    let res = 1;
    assert_eq!(Solution::sum_base(n, k), res);
}

Having problems with this solution? Click here to submit an issue on github.