1837. K 进制表示下的各位数字总和 - 力扣(LeetCode)

要将一个整数 n 从 10 进制转换为基数 k 进制,并计算转换后各位数字的总和,可以按照以下步骤进行:
-
转换为基数 k 进制:将
n除以k,记录余数,并重复除法操作,直到商为 0。余数对应的数字就是转换后的每一位。 -
计算总和:得到转换后的各位数字后,求这些数字的总和。
下面是具体的算法步骤:
-
使用
n % k获取当前位的数字。 -
使用
n // k更新n为商。 -
重复上述步骤直到
n变为 0。
示例
假设 n = 345 和 k = 6,我们需要将 345 转换为 6 进制,计算每一位数字的总和。
步骤:
-
345 % 6 = 3(当前位) -
345 // 6 = 57,继续处理 57 -
57 % 6 = 3(当前位) -
57 // 6 = 9,继续处理 9 -
9 % 6 = 3(当前位) -
9 // 6 = 1,继续处理 1 -
1 % 6 = 1(当前位) -
1 // 6 = 0,结束
所以,345 转换成 6 进制为 1333,各位数字和为 1 + 3 + 3 + 3 = 10。
代码实现
def sum_of_digits_in_base(n, k):
total_sum = 0
while n > 0:
total_sum += n % k
n //= k
return total_sum
例子
-
输入:
n = 345,k = 6 -
输出:
10
这个方法会将数字 n 转换为 k 进制,并返回各位数字的和。
762

被折叠的 条评论
为什么被折叠?



