### 题目描述 给定一个整数**num**,将其转化为**7**进制,并以字符串形式输出。 ### 输入输出 #### 示例1 ``` 输入: num = 100 输出: "202" ``` #### 示例2 ``` 输入: num = -7 输出: "-10" ``` **提示** -10^7 <= num <= 10^7 ### 题目解答 #### 解题思路 进制转化问题,我们可以用10进制的数字取模得到的余数,作为进制转换之后的数字,依次进行取7模和除7的操作,得到从低位到高位的转化结果,最后将其反过来即可。 1. 如果是正数的话,按照上述操作进行。 2. 如果是负数的话,将其转化为正数,最后补一个符号。 3. 如果是0的话,直接输出str格式即可 算法复杂度分析: 设输入数字的为n 时间复杂度:$$log_7{n}$$ 空间复杂度:需要长度为$$log_7{n}$$存储结果 #### 代码实现 ```python class Solution: def convertToBase7(self, num: int) -> str: res = "" flag = False if num == 0: return str(0) elif num < 0: flag = True num = -1 * num while num > 0: res += str(num % 7) num = num // 7 return res[::-1] if not flag else '-' + res[::-1] ``` 最后编辑:2024年04月23日 ©著作权归作者所有 赞 0 分享
最新回复