给定一个整数,将其转化为7进制,并以字符串形式输出。
示例 1:
输入: 100
输出: "202"
示例 2:
输入: -7
输出: "-10"
注意: 输入范围是 [-1e7, 1e7] 。
分析:
十进制转为其他进制数,直接除基取余,然后反转就可以了
1.迭代
class Solution {
public:
string convertToBase7(int num) {
int flag = 0;
if(num<0) flag = 1;
num = abs(num);
string result = "";
do{
result += char('0'+num%7);
num /= 7;
}while(num!=0);
if(flag) result +='-';
reverse(result.begin(), result.end());
return result;
}
};
2.递归
class Solution {
private:
string convert(int num, int flag){
if(num==0) return flag>0? "-":"";
int d = num%7;
return convert(num/7, flag)+char('0'+d);
}
public:
string convertToBase7(int num) {
if(num == 0) return "0";
int flag = 0;
if(num<0) flag = 1;
num = abs(num);
string result = convert(num, flag);
return result;
}
};