504. 七进制数
给定一个整数,将其转化为7进制,并以字符串形式输出。
示例 1:
输入: 100
输出: “202”
示例 2:
输入: -7
输出: “-10”
注意: 输入范围是 [-1e7, 1e7] 。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/base-7
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
C++ 简洁递归法:
class Solution {
public:
string convertToBase7(int num) {
if(num<0) return '-'+convertToBase7(-num);
if(num<7) return to_string(num);
string res="";
while(num){
res=char(num%7+'0')+res;
//强转,值挂在左边
num=num/7;
}
return res;
}
};
优点:逻辑清晰
缺点:时间消耗较大
设置flag记录正负值:
class Solution {
public:
string convertToBase7(int num) {
int flag=0;
if(num<0) {
flag=1;
num=-num;
}
if(num<7)
if(flag==1) return '-'+to_string(num);
else return to_string(num);
string res="";
while(num){
res=char(num%7+'0')+res;
//强转,值挂在左边
num=num/7;
}
if(flag==1) return '-'+res;
return res;
}
};
时间有优化。
Javascript代码
/**
* @param {number} num
* @return {string}
*/
var convertToBase7 = function(num) {
let isFu=0;
if(num<0) {
isFu=1;
num=-num;
}
let strtes="";
var yu=num%7;
strtes=yu.toString();
while(num-num%7){
num=(num-num%7)/7;
strtes=(num%7).toString()+strtes;
}
if(isFu) return "-"+strtes;
return strtes;
};
表现也非常优秀