Revizia anterioară Revizia următoare
| Fișierul intrare/ieșire | suprapuneri.in, suprapuneri.out | Sursă | Cerc informatică Vianu |
|---|---|---|---|
| Autor | Cristian Frâncu | Adăugată de |
|
| Timp de execuție pe test | 0.05 sec | Limită de memorie | 1024 KB |
| Scorul tău | N/A | Dificultate |
Vezi soluțiile trimise | Statistici
Suprapuneri (clasa a 6-a)
Notă: acesta este un exercițiu introductiv în lucrul cu numere în baza doi. Pentru ca voi să învățați ceva lucrînd la el este necesar să nu folosiți vectori. Codul onoarei, vă rog. Sursele vor fi verificate.
Se citesc două numere zecimale m și n. Vom considera reprezentările lor în baza doi. Pentru a le aduce la același număr de cifre în baza doi vom completa numărul mai mic la stînga cu zero. Astfel ambele reprezentări vor avea x cifre în baza doi. O rotație a unui număr în baza doi se obține tăind prima sa cifră și adăugînd-o la finalul numărului. Putem forma astfel x rotații diferite, incluzînd numărul original.
Cerință
Calculați cîte din rotațiile reprezentării numărului m în baza doi se suprapun perfect cu reprezentarea în baza doi a numărului n.
Date de intrare
Fișierul de intrare suprapuneri.in va conține pe prima linie cele două numere m și n separate printr-un spațiu.
Date de ieșire
În fișierul de ieșire suprapuneri.out veți scrie numărul de suprapuneri ale reprezentărilor binare ale celor două numere.
Restricții
- 0 ≤ m, n ≤ 1018
Exemplu
| suprapuneri.in | suprapuneri.out | Explicație |
|---|---|---|
| 54 27 |
2 |
Pentru m = 54 și n = 27 cele două reprezentări în baza doi vor fi 110110, respectiv 11011. Vom aduce reprezentarea a doua la același număr de cifre și vom avea cele două reprezentări 110110 și 011011. Apoi vom efectua rotațiile și vom număra cîte egalități de reprezentări avem: $nbsp; 110110 ≠ 011011 101101 ≠ 011011 011011 = 011011 egalitate 110110 ≠ 011011 101101 ≠ 011011 011011 = 011011 egalitate   În concluzie vom afișa 2. |


Poți vedea testele pentru această problemă accesând