#1505
B210
Vasilică tocmai a învăţat la şcoală despre sistemul de numeraţie cu baza 2
. I se pare interesant şi a inventat jocul b210
, pe care vrea să îl joace cu prietenul său Gigel. Vasilică îi spune lui Gigel un număr natural nenul n
, scris în baza 10
. Gigel trebuie să scrie numărul în baza 2
, obţinând astfel o secvenţă de cifre binare, care începe cu 1
. Asupra scrierii în baza 2
a numărului n
Gigel poate aplica una sau mai multe permutări circulare. Printr-o permutare circulară, toate cifrele secvenţei date, exceptând ultima, sunt mutate cu o poziţie spre dreapta, iar ultima cifră devine prima.
De exemplu, dacă n=107
, scrierea sa în baza 2
este 1101011
. Prin permutări circulare succesive putem obţine, în ordine, secvenţele:
1110101 1111010 0111101 1011110 ...
Fiecare astfel de secvenţă este scrierea în baza 2
a unui număr natural, pe care Gigel îl transformă în baza 10
. Gigel trebuie să afle care este cel mai mare număr natural m
, scris în baza 10
, a cărui scriere în baza 2
se poate obţine prin una sau mai multe permutări circulare ale scrierii în baza 2
a numărului n
. Lui Gigel jocul nu i se pare aşa interesant şi ar prefera să aibă un program care să determine în locul lui numărul natural m
.
Scrieţi un program care citeşte numărul natural nenul n
şi care determină cel mai mare număr natural m
, scris în baza 10
, care poate fi obţinut prin una sau mai multe permutări circulare ale scrierii în baza 2
a numărului natural n
.
Olimpiada Municipala Informatica Iasi 2016
Problema | B210 | Operații I/O |
b210.in /b210.out
|
---|---|---|---|
Limita timp | 0.1 secunde | Limita memorie |
Total: 2 MB
/
Stivă 1 MB
|
Id soluție | #20295704 | Utilizator | |
Fișier | b210.cpp | Dimensiune | 801 B |
Data încărcării | 25 Ianuarie 2020, 23:01 | Scor / rezultat | 0 puncte |
b210.cpp: In function 'int main()': b210.cpp:13:11: warning: unused variable 'b10' [-Wunused-variable] double nr,b10,max10=0; ^ b210.cpp:15:19: warning: ignoring return value of 'int fscanf(FILE*, const char*, ...)', declared with attribute warn_unused_result [-Wunused-result] fscanf(si,"%d",&n); ^
Test | Timp | Mesaj evaluare | Scor posibil | Scor obținut | ||
---|---|---|---|---|---|---|
1 | 0 secunde | Raspuns gresit. | 10 | 0 | ||
2 | 0 secunde | Raspuns gresit. | 10 | 0 | ||
3 | 0 secunde | Raspuns gresit. | 10 | 0 | ||
4 | 0 secunde | Raspuns gresit. | 10 | 0 | ||
5 | 0 secunde | Raspuns gresit. | 10 | 0 | ||
6 | 0 secunde | Raspuns gresit. | 10 | 0 | ||
7 | 0 secunde | Raspuns gresit. | 10 | 0 | ||
8 | 0 secunde | Raspuns gresit. | 15 | 0 | ||
9 | 0 secunde | Raspuns gresit. | 15 | 0 | ||
Punctaj total | 0 |
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema B210 face parte din prima categorie. Soluția propusă de tine va fi evaluată astfel:
Suma punctajelor acordate pe testele utilizate pentru verificare este 100. Astfel, soluția ta poate obține cel mult 100 de puncte, caz în care se poate considera corectă.