Base 7 Leetcode 솔루션


난이도 쉽게
자주 묻는 질문 블룸버그 게시물에서 가레 나
수학

문제 Base 7 Leetcode Solution은 숫자를 7 진법 숫자로 변환하도록 요청합니다. 주어진 숫자는 수직선에서 양방향으로 천만까지 음수 또는 양수일 수 있습니다. 문제는 간단 해 보이며 십진수를 다른 밑으로 간단히 변환하는 것입니다. 이진 형식의 숫자 변환과 같습니다. 밑이 10가 아니라 밑이 2입니다. 반환 값은 문자열이어야합니다. 몇 가지 예를 살펴 보겠습니다.

100
"202"

설명 : 변환 후 기본 202의 숫자 7는 100 진수 형식으로 202을 산출합니다. 밑수 7의 2 = 7 * (2 ^ 0) + 7 * (1 ^ 2) + 7 * (0 ^ 100) = 밑수 7의 XNUMX

Base 7 Leetcode 솔루션

-7
"-10"

설명 : 7 진수로 변환 한 후 주어진 숫자 -7은 -10을 제공합니다.

Base 7 Leetcode 솔루션에 대한 접근 방식

문제 Base 7 Leetcode 솔루션은 번호 또는 정수 7 진법으로 변환하도록 요청합니다. 7 진법뿐만 아니라 간단한 작업입니다. 주어진 숫자를 필수 기준으로 계속 나눕니다. 숫자를 나눈 후 나머지는 저장됩니다. 그런 다음 숫자를 나눈 후 찾은 결과는 반복적 인 나눗셈을 위해 다시 전송됩니다. 우리는 질문에 대한 답인 나머지를 계속 저장합니다. 숫자가 주어진 염기보다 작아지면 반복적 인 프로세스가 중지됩니다.

따라서 100을 입력으로 고려해 봅시다. 먼저 숫자를 7로 나눕니다. 몫은 14이고 나머지는 2입니다. 그런 다음 나머지는 저장되고 몫은 나눗셈을 위해 다시 전송됩니다. 이제 몫은 2가되고 나머지는 저장됩니다. 지금까지 변환 된 숫자는 20이됩니다. 그러면 나눗셈을 위해 몫이 다시 보내지지만 주어진 밑수 (7)보다 작기 때문에 반환됩니다. 따라서 최종 결과는 202가됩니다.

암호

Base 7 Leetcode 솔루션을위한 C ++ 코드

#include <bits/stdc++.h>
using namespace std;

string convertToBase7(int num) {
    if(num < 0)return "-" + convertToBase7(-num);
    else if(num < 7) return to_string(num);
    else
        return convertToBase7(num/7) + convertToBase7(num%7);
}

int main(){
    cout<<convertToBase7(100);
}
202

Base 7 Leetcode 솔루션 용 Java 코드

import java.util.*;
import java.lang.*;
import java.io.*;

class Solution {
    public static String convertToBase7(int num) {
        if(num < 0)return "-" + convertToBase7(-num);
        else if(num < 7) return Integer.toString(num);
        else
            return convertToBase7(num/7) + convertToBase7(num%7);
    }
    
    public static void main(String[] args){
    	System.out.print(convertToBase7(100));
    }
}
202

복잡성 분석

시간 복잡성

O (M (n) log n), 여기서 n은 주어진 입력의 길이이고, M (n)은 두 개의 2 비트 숫자를 나누는 데 걸리는 시간입니다. 따라서 시간 복잡성은 대수입니다.

공간 복잡성

O (log n), 컴파일러 스택에서 사용하는 공간입니다. 여기서 n은 숫자의 길이를 나타냅니다. 따라서 공간 복잡성도 로그입니다.