Problem Base 7 Leetcode Solution, bir ədədi baza 7 sayına çevirməyimizi istər. Verilən rəqəm nömrə xəttində hər iki istiqamətdə 10 milyona qədər mənfi və ya müsbət ola bilər. Problem sadə görünür və ondalık ədədin fərqli bir bazaya çevrilməsidir. Bir ədədin ikili formatda çevrilməsi kimi. Baza 2-nin əvəzinə, baza 7-dir. Qaytarılan dəyər bir sətir olmalıdır. Bir neçə nümunəyə nəzər salaq.
Mündəricat
misal
100
"202"
İzahat: Dönüşümdən sonra baza 202-dəki 7 rəqəmi ondalık formatda 100 verir. 202 bazada 7 = 2 * (7 ^ 2) + 0 * (7 ^ 1) + 2 * (7 ^ 0) = 100 bazada 7.
-7
"-10"
İzahat: Verilən -7 ədədi 7-yə çevrildikdən sonra -10 verəcəkdir.
Base 7 Leetcode Həlli üçün yanaşma
Problem Base 7 Leetcode Solution, bizə bir nömrə və ya təmin edir tam və bazanı 7-yə çevirməyimizi xahiş edir. Yalnız baza 7-yə çevrilmək sadə bir əməliyyatdır. Verilən ədədi lazımlı bazamızla bölməyə davam edirik. Nömrəni böldükdən sonra qalıq saxlanılır. Sonra ədədi böldükdən sonra tapılan nəticə təkrar bölünməyə göndərilir. Sualın cavabı olan qalığı saxlamağa davam edirik. Sayı verilən bazadan az olduqda təkrarlanan proses dayandırılır.
Beləliklə, 100-ü giriş kimi nəzərdən keçirək. Əvvəlcə ədədi 7-yə bölürük, nisbət 14, qalan 2-dir. Sonra qalıq saxlanılır və bölmə yenidən bölünməyə göndərilir. İndi, nisbət 2 olur, qalanı isə saxlanılır. İndiyə qədər çevrilmiş rəqəm 20 olur. Sonra hissə yenidən bölünməyə göndərilir, lakin verilən bazadan (7) az olduğu üçün qaytarılır. Beləliklə, son nəticə 202 olur.
Kodu
Base 7 Leetcode Solution üçün C ++ kodu
#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 Solution üçün Java kodu
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
Mürəkkəblik təhlili
Zamanın mürəkkəbliyi
O (M (n) log n), burada n - verilən girişin uzunluğu, M (n) - iki bitlik iki ədədi bölmək üçün vaxt. Beləliklə, zamanın mürəkkəbliyi loqaritmikdir.
Kosmik Mürəkkəblik
O (log n), kompilyator yığınının istifadə etdiyi yer. Burada n rəqəmin uzunluğunu təmsil edir. Beləliklə, kosmik mürəkkəblik də loqaritmikdir.