本文共 660 字,大约阅读时间需要 2 分钟。
解题思路:
方法一:直接调用Java函数
Integer.toString(n, k)的作用是将十进制数n转换为k进制字符串。在转换后的字符串中,每一位字符可以用'0'减去ASCII码转换为数字,逐个相加即可得到结果。
方法二:短除法
通过不断将n除以k,取余数并将余数累加,直接得到k进制各位数字的和。这种方法不需要额外的转换步骤,简洁且高效。
代码:
class Solution { public int sumBase(int n, int k) { String s = Integer.toString(n, k); int ans = 0; for (char i : s.toCharArray()) { ans += i - '0'; } return ans; }}
复杂度分析:
代码:
class Solution { public int sumBase(int n, int k) { int ans = 0; while (n != 0) { ans += n % k; n /= k; } return ans; }}
复杂度分析:
转载地址:http://faynz.baihongyu.com/