就是输入一个十进制数,转成七进制数,这个七进制,和我们的周特别相似,一周七天。如怎么把第 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]