Skip to content
On this page

题目链接

就是输入一个十进制数,转成七进制数,这个七进制,和我们的周特别相似,一周七天。如怎么把第 9 天转换成按周的天数呢?首先把 9 取余 7,得到 2,之后在把 9 除以 7,并向下取整,得到 1,之后再把 1 取余 7,得到 1,之后再把 1 除以 7,并向下取整,得到 0,这时循环终止,得到了结果,是 12,也就是第一周过后的第二天是第 9 天

其实进制转换并不高大上,他在我们的生活中很常见,比如时间计算就是进制转换,其实任何时间点都是可以用时间戳来表示的,假设时间戳的基本单位是毫秒,那么先把时间戳取余 1000,就得到了毫秒,之后把时间戳除以 1000,再取余 60,就得到了秒,之后以此类推。这里你还可以发现,还可以使用不同的进制,比如毫秒是 1000 进制,秒就又是 60 进制了

ts 代码

typescript
function convertToBase7(num: number): string {
    if (num === 0) {
        return '0';
    }

    let isNegative = false;
    if (num < 0) {
        isNegative = true;
        num = -num;
    }

    const res: string[] = [];
    const base = 7;
    while (num !== 0) {
        let remainder = num % base;
        res.push(remainder + '');
        num = Math.floor(num / base);
    }
    return (isNegative ? '-' : '') + res.reverse().join('');
}

py 代码(py 中没有三元表达式)

python
class Solution:
    def convertToBase7(self, num: int) -> str:
        isNegative = False
        if num < 0:
            isNegative = True
            num = -num
        if num == 0:
            return '0'
        res = ''
        base = 7
        while num != 0:
            res += str(num % base)
            num = num // base
        if isNegative:
            return '-'+res[::-1]
        else:
            return res[::-1]