Fişierul intrare/ieşire:suprapuneri.in, suprapuneri.outSursăCerc informatică Vianu
AutorCristian FrancuAdăugată defrancuCristian Francu francu
Timp execuţie pe test0.05 secLimită de memorie1024 kbytes
Scorul tăuN/ADificultatenormalnormalnormalnormalnormal

Vezi solutiile trimise

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.insuprapuneri.outExplicaţ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:
 
110110 ≠ 011011
101101 ≠ 011011
011011 = 011011 egalitate
110110 ≠ 011011
101101 ≠ 011011
011011 = 011011 egalitate
 
În concluzie vom afişa 2.
Trebuie sa te autentifici pentru a trimite solutii. Click aici