#1122
Babilon
Babilonienii au dezvoltat un sistem pozițional de scriere a numerelor, în care orice număr natural se poate reprezenta utilizând semnele (unu),
(zece) şi spaţii.
Valorile k
din {2, 3, … , 9}
se obțin scriind semnul de k ori (scrierea babiloniană a lui 3 este
).
Numerele 11
, 12
, … , 59
se obțin ca succesiuni de semne urmate de semne
(43 se reprezintă ca
).
Sistemul folosește gruparea unităților câte șaizeci. Astfel, pentru a scrie umărul șaizeci se folosește același semn ca pentru unu, dar valoarea sa este dată de poziția în care se găsește semnul .
Babilonienii nu foloseau cifra 0
. Pentru poziţionarea corectă a semnelor se utiliza spațiu (60
se reprezintă ca
,
3600
se reprezintă ca
etc.).
Se codifică scrierea babiloniană a unui număr utilizând cifra 1
în locul semnului , cifra
2
în locul semnului și cifra
3
în loc de spațiu.
Dându-se un număr natural n
și un șir de n
cifre din mulțimea {1, 2, 3}
, reprezentând codificarea scrierii babiloniene a unui număr natural, să se determine:
a) numărul maxim de cifre 1
aflate pe poziții consecutive în codificarea scrierii babiloniene date;
b) numărul natural din sistemul zecimal corespunzător scrierii babiloniene date.
ONI GIM 2014, Clasa a V-a
Problema | Babilon | Operații I/O |
![]() babilon.in /babilon.out
|
---|---|---|---|
Limita timp | 0.1 secunde | Limita memorie |
Total: 2 MB
/
Stivă 2 MB
|
Id soluție | #51544419 | Utilizator | |
Fișier | babilon.cpp | Dimensiune | 1.38 KB |
Data încărcării | 08 Iulie 2024, 18:44 | Scor / rezultat | Eroare de compilare |
babilon.cpp: In function 'int main()': babilon.cpp:16:15: error: no match for 'operator=' (operand types are 'std::ifstream {aka std::basic_ifstream<char>}' and 'int') f = 1; ^ babilon.cpp:16:15: note: candidate is: In file included from babilon.cpp:1:0: /usr/include/c++/4.8/fstream:427:11: note: std::basic_ifstream<char>& std::basic_ifstream<char>::operator=(const std::basic_ifstream<char>&) <deleted> class basic_ifstream : public basic_istream<_CharT, _Traits> ^ /usr/include/c++/4.8/fstream:427:11: note: no known conversion for argument 1 from 'int' to 'const std::basic_ifstream<char>&' babilon.cpp:21:15: error: no match for 'operator=' (operand types are 'std::ifstream {aka std::basic_ifstream<char>}' and 'int') f = 0; ^ babilon.cpp:21:15: note: candidate is: In file included from babilon.cpp:1:0: /usr/include/c++/4.8/fstream:427:11: note: std::basic_ifstream<char>& std::basic_ifstream<char>::operator=(const std::basic_ifstream<char>&) <deleted> class basic_ifstream : public basic_istream<_CharT, _Traits> ^ /usr/include/c++/4.8/fstream:427:11: note: no known conversion for argument 1 from 'int' to 'const std::basic_ifstream<char>&' babilon.cpp:23:30: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] for (int i = 2; i <= n; i ++) ^ babilon.cpp:53:29: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] for (int i = 2; i <= n; i ++) ^ babilon.cpp:7:26: warning: unused variable 'c' [-Wunused-variable] unsigned n, v, a, b, c, fr, fmax; ^
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema Babilon 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ă.