Konwersja między dowolnymi systemami (2..36)
Treść zadania
Wczytaj zapis liczby naturalnej X w systemie o podstawie p oraz podstawę docelową q. Wypisz zapis tej samej liczby w systemie o podstawie q.
Dane wejściowe
- 1. linia:
X— zapis liczby w systemie o podstawiep(cyfry0–9i wielkie literyA–Z, gdzieA= 10,B= 11, …,Z= 35) - 2. linia:
p— podstawa systemu, w którym zapisanoX - 3. linia:
q— podstawa systemu docelowego
Dane wyjściowe
Jedna linia: zapis liczby w systemie o podstawie q, bez zer wiodących (cyfry 0–9 i wielkie litery A–Z).
Ograniczenia
2 ≤ p, q ≤ 36Xma od 1 do 20 znaków, każda cyfra jest mniejsza odp;Xmoże zaczynać się od zer
Uwagi
- Najpierw zamień
Xna liczbę (przechodząc po cyfrach od lewej: wynik = wynik ·p+ cyfra), a potem zamień ją na systemq(reszty z dzielenia przezq). - Spróbuj obejść się bez
int(X, p)— zaimplementuj obie zamiany samodzielnie. - Liczba
0w każdym systemie to0.
Przykład
4301 10 4
1003031
Potrzebujesz teorii?
Zasady obowiązujące w rozdziale 16
Zadania w tym rozdziale ćwiczą zamianę liczb między systemami liczbowymi oraz operatory bitowe: & (AND), | (OR), ^ (XOR), ~ (NOT) i przesunięcia <<, >>.
Każde zadanie (oraz każdy podpunkt w zadaniach wieloczęściowych) jest osobnym, niezależnym programem: czyta standardowe wejście (stdin) i wypisuje wynik na standardowe wyjście (stdout).
Konwencje wspólne:
- Każda liczba na wejściu jest w osobnej linii, w kolejności podanej w sekcji Wejście.
- Liczby na wejściu są nieujemne (
0jest dozwolone), chyba że zadanie wprost mówi inaczej. - Zapis binarny wypisuj jako ciąg znaków
0i1**bez spacji, bez prefiksu0bi bez zer wiodących**; zapis binarny liczby0to0. - Dla systemów o podstawie większej niż 10 używaj cyfr
0–9oraz wielkich literA–Z. - Jeśli zadanie mówi „nie wypisuj nic” — program nie wypisuje nawet pustej linii.
- Program nie wypisuje komunikatów typu „Podaj liczbę:”.
Zadanie pochodzi z otwartego zbioru Nauka-Programowania (z rozwiązaniami wzorcowymi). Zgłoś błąd w treści lub testach.
Przywrócono Twój zapisany kod.
Python uruchomi się w przeglądarce przy pierwszym teście.
Kod zapisuje się automatycznie w tej przeglądarce. Tab wstawia wcięcie; aby opuścić edytor klawiaturą, naciśnij Esc, a potem Tab.
Testy
Program dostaje „Wejście” przez input() i musi wypisać „Oczekiwane wyjście”. Liczby porównywane są z tolerancją 0,01, a tekst podany w input("…") nie jest sprawdzany.
Test 1
Nie uruchomiono1A 16 10
26
Test 2
Nie uruchomiono1011 2 16
B
Test 3
Nie uruchomiono0 10 2
0
Test 4
Nie uruchomionoZZ 36 10
1295
Test 5
Nie uruchomiono255 10 16
FF
Test 6
Nie uruchomiono777 8 2
111111111
Test 7
Nie uruchomiono123 10 36
3F
Test 8
Nie uruchomiono00FF 16 2
11111111
Test 9
Nie uruchomiono1003031 4 10
4301