• [LeetCode] 504. Base 7 基数七


    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);
        }
    };
    

      

      

    All LeetCode Questions List 题目汇总

  • 相关阅读:
    respons——文件下载
    李珊珊(为奥运冠军名字作诗)
    林跃/火亮(为奥运冠军名字作诗)
    张湘祥(为奥运冠军名字作诗)
    何可欣(为奥运冠军名字作诗)
    李小鹏(为奥运冠军名字作诗)
    王鑫(为奥运冠军名字作诗)
    杨伊琳(为奥运冠军名字作诗)
    江钰源(为奥运冠军名字作诗)
    黄旭(为奥运冠军名字作诗)
  • 原文地址:https://www.cnblogs.com/lightwindy/p/9860155.html
Copyright © 2020-2023  润新知