Given an integer, return its base 7 string representation.
Example 1:
Input: 100 Output: "202"
Example 2:
Input: -7 Output: "-10"
Note: The input will be in range of [-1e7, 1e7].
给一个整数,返回它的七进制数。
解法1: 迭代
解法2: 递归
Java:
public class Solution { public String convertTo7(int num) { if (num == 0) return "0"; StringBuilder sb = new StringBuilder(); boolean negative = false; if (num < 0) { negative = true; } while (num != 0) { sb.append(Math.abs(num % 7)); num = num / 7; } if (negative) { sb.append("-"); } return sb.reverse().toString(); } }
Java:
public String convertTo7(int num) { if (num < 0) return '-' + convertTo7(-num); if (num < 7) return num + ""; return convertTo7(num / 7) + num % 7; }
Python:
class Solution(object): def convertToBase7(self, num): """ :type num: int :rtype: str """ if num == 0: return '0' if num < 0: return '-' + self.convertToBase7(-num) res = '' while num > 0: res = str(num % 7) + res num = num / 7 return res
Python:
def convertTo7(self, num): if num == 0: return '0' n, res = abs(num), '' while n: res = str(n % 7) + res n //= 7 return res if num > 0 else '-' + res
Python:
def convertTo7(self, num): if num < 0: return '-' + self.convertTo7(-num) if num < 7: return str(num) return self.convertTo7(num // 7) + str(num % 7)
C++:
class Solution { public: string convertToBase7(int num) { if (num == 0) return "0"; string res = ""; bool positive = num > 0; while (num != 0) { res = to_string(abs(num % 7)) + res; num /= 7; } return positive ? res : "-" + res; } };
C++:
class Solution { public: string convertToBase7(int num) { if (num < 0) return "-" + convertToBase7(-num); if (num < 7) return to_string(num); return convertToBase7(num / 7) + to_string(num % 7); } };