.campion
conectare | înregistrare | căutare
Pagina principală » Probleme » numere6

ultima problemă
grupă: mică
sursă: OMI 2016
ultimul articol
autor: Prof. Radu Vişinescu
ultimul software
autor: Prof. Emanuela Cerchez
numere6


Timp maxim de execuţie / test:
0.1s
Memorie totala disponibilă / stivă:
2MB / 1MB

Fie a şi b două numere naturale. Se reprezintă cele două numere în baza 2. Celor două valori obţinute prin reprezentarea în baza 2 li se aplică următoarea transformare: dacă prima cifră (cea mai din stânga) din reprezentarea în baza 2 a numărului a este egală cu ultima cifră (cea mai din dreapta) din reprezentarea în baza 2 a numărului b, atunci se elimină prima cifră (cea mai din stânga) din reprezentarea în baza 2 a numărului a şi ultima cifră (cea mai din dreapta) din reprezentarea în baza 2 a numărului b şi se continuă transformările în acelaşi mod până când prima cifră (cea mai din stânga) din reprezentarea în baza 2 a numărului a este diferită de ultima cifră (cea mai din dreapta) din reprezentarea în baza 2 a numărului b. Valorile rămase după transformările suferite se reprezintă în baza 10, obţinându-se două numere: c şi d.

Observaţii:
1. Dacă asupra celor două reprezentări în baza 2 nu s-a efectuat nici o transformare, întrucât prima cifră din reprezentarea numărului a este diferită de ultima cifră din reprezentarea în baza 2 a numărului b, atunci numărul c va fi identic cu numărul a, iar d cu numărul b.
2. Dacă în urma unei transformări se elimină şi ultima cifră din reprezentarea în baza 2, numărul rezultat este 0.

Cerinţă

Scrieţi un program care citeşte numerele a şi b şi care afişează valoarea obţinută însumând cele două numere c şi d.

Date de intrare

Pe prima linie a fişierului de intrare numere6.in se găsesc două valori naturale a şi b separate de un spaţiu.

Date de ieşire

Pe prima linie a fişierului de ieşire numere6.out se va afişa un număr natural reprezentând suma cerută.

Restricţii

a, b sunt numere naturale; 0 < a, b < 30000

Exemple

numere6.innumere6.outExplicaţii
13 27 1 Explicaţie: în baza 2, numărul 13 se scrie 1101
în baza 2, numărul 27 se scrie 11011
După prima transformare se obţin: 101, respectiv 1101. Se continuă transformările şi se obţin: 01, respectiv 110. Se continuă transformarea şi se obţine 1, respectiv 11. Se continuă transformarea şi se obţin: 0 şi 1. Se face conversia şi se obţin: c=0 şi d=1. Deci, suma c + d este 1.
13 25 17 Explicaţie: în baza 2, numarul 13 se scrie 1101
în baza 2, numarul 25 se scrie 11001
După prima transformare se obţin : 101, respectiv 1100. Din acest moment nu se mai pot face transformări. Se reprezintă 101 în baza 10 şi se obţine 5, iar 1100 se reprezintă în baza 10 şi se obţine 12. Deci, c=5 şi d=12, iar suma c + d este 17.
13 20 33 Explicaţie: în baza 2, numarul 13 se scrie 1101
în baza 2, numarul 20 se scrie 10100
Se observă că prima cifră din reprezentarea lui a este diferită de ultima cifră din reprezentarea lui b. Deci, nu se face nici o transformare. Se obţin după conversia în baza 10: c=13 şi d=20. Deci, suma c + d este 33.

autor: Prof. Roxana Timplaru
propunător: Prof. Marinel Şerban
Liceul de Informatică “Grigore Moisil”
marinel_serban@yahoo.com
Probleme recomandate
surse trimise | ajutor