1003 - Baze1: Difference between revisions

From Bitnami MediaWiki
Pagină nouă: == Cerinţa == Se dau două numere b1 b2, reprezentând două baze de numeraţie şi două şiruri de cifre x y, reprezentând două numere: x în baza b1, y în baza b2. Determinaţi suma numerelor x şi y în baza 10. == Date de intrare == Fișierul de intrare '''baze1in.txt''' conține pe prima linie numerele '''b1 b2''', iar pe a doua linie cele două şiruri de cifre cu semnificaţia de mai sus. == Date de ieșire == Fișierul de ieșire '''baze1out.txt''' va conține pe...
 
No edit summary
 
(8 intermediate revisions by the same user not shown)
Line 1: Line 1:
== Cerinţa ==
== Cerinţa ==
Se dau două numere b1 b2, reprezentând două baze de numeraţie şi două şiruri de cifre x y, reprezentând două numere: x în baza b1, y în baza b2. Determinaţi suma numerelor x şi y în baza 10.
Se dau două numere '''b1 b2''', reprezentând două baze de numeraţie şi două şiruri de cifre '''x y''', reprezentând două numere: '''x''' în baza '''b1''', '''y''' în baza '''b2'''. Determinaţi suma numerelor '''x''' şi '''y''' în baza '''10'''.
== Date de intrare ==
== Date de intrare ==
Fișierul de intrare '''baze1in.txt''' conține pe prima linie numerele '''b1 b2''', iar pe a doua linie cele două şiruri de cifre cu semnificaţia de mai sus.
Fișierul de intrare '''baze1in.txt''' conține pe prima linie numerele '''b1 b2''', iar pe a doua linie cele două şiruri de cifre cu semnificaţia de mai sus.
Line 8: Line 8:
* '''2 ⩽ b1,b2 ⩽ 10'''
* '''2 ⩽ b1,b2 ⩽ 10'''
* reprezentările în baza '''10''' ale lui '''x''', '''y''' şi suma lor nu depăşesc '''2 000 000 000'''
* reprezentările în baza '''10''' ale lui '''x''', '''y''' şi suma lor nu depăşesc '''2 000 000 000'''
== Exemplul 1 ==
 
; Intrare
121 prieteni analizeaza Un capac; aeriSIrea    radar
; Iesire
Datele de intrare corespund restrictiilor impuse
aeriSIrea
<br>


== Exemplul 1 ==
== Exemplul 1 ==
; baze1in.txt
; baze1in.txt
 
2 5  
2 5  
110 213
110 213
; baze1out.txt
; baze1out.txt
 
Datele de intrare corespund restrictiilor impuse
Datele de intrare corespund restrictiilor impuse
64
64


== Exemplu 2 ==
== Exemplu 2 ==
; baze1in.txt
; baze1in.txt
 
2 5  
2 5  
110 213333333333333333333
110 213333333333333333333
; baze1out.txt
; baze1out.txt
 
Datele de intrare nu corespund restrictiilor impuse
Datele de intrare nu corespund restrictiilor impuse




Line 40: Line 30:
<syntaxhighlight lang="python" line>
<syntaxhighlight lang="python" line>
def main():
def main():
    # Deschiderea fișierelor de intrare și ieșire
     with open('baze1in.txt', 'r') as fin, open('baze1out.txt', 'w') as fout:
     with open('baze1in.txt', 'r') as fin, open('baze1out.txt', 'w') as fout:
        # Citirea bazelor și a numerelor din fișierul de intrare
         b1, b2 = map(int, fin.readline().strip().split())
         b1, b2 = map(int, fin.readline().strip().split())
         x, y = fin.readline().strip().split()
         x, y = fin.readline().strip().split()
        if any(len(numar) > 10 for numar in [x, y]):
            fout.write("Datele de intrare nu corespund restrictiilor impuse\n")
            return
        fout.write("Datele de intrare corespund restrictiilor impuse\n")
        x_10 = int(x, b1)
        y_10 = int(y, b2)
        suma_10 = x_10 + y_10
        fout.write(str(suma_10) + '\n')
if __name__ == "__main__":
    main()
</syntaxhighlight>
</syntaxhighlight>


== Explicatie ==
== Explicatie ==
 
'''110(2) = 6'''
'''110(2) = 6
'''213(5) = 58'''
213(5) = 58
'''6 + 58 = 64'''
6 + 58 = 64'''

Latest revision as of 12:34, 3 January 2024

Cerinţa[edit | edit source]

Se dau două numere b1 b2, reprezentând două baze de numeraţie şi două şiruri de cifre x y, reprezentând două numere: x în baza b1, y în baza b2. Determinaţi suma numerelor x şi y în baza 10.

Date de intrare[edit | edit source]

Fișierul de intrare baze1in.txt conține pe prima linie numerele b1 b2, iar pe a doua linie cele două şiruri de cifre cu semnificaţia de mai sus.

Date de ieșire[edit | edit source]

Fișierul de ieșire baze1out.txt va conține pe prima linie numărul S, reprezentând suma dintre x şi y.

Restricţii şi precizări[edit | edit source]

  • 2 ⩽ b1,b2 ⩽ 10
  • reprezentările în baza 10 ale lui x, y şi suma lor nu depăşesc 2 000 000 000


Exemplul 1[edit | edit source]

baze1in.txt
2 5 
110 213
baze1out.txt
Datele de intrare corespund restrictiilor impuse
64

Exemplu 2[edit | edit source]

baze1in.txt
2 5 
110 213333333333333333333
baze1out.txt
Datele de intrare nu corespund restrictiilor impuse


Rezolvare[edit | edit source]

<syntaxhighlight lang="python" line> def main():

   with open('baze1in.txt', 'r') as fin, open('baze1out.txt', 'w') as fout:
       b1, b2 = map(int, fin.readline().strip().split())
       x, y = fin.readline().strip().split()
       if any(len(numar) > 10 for numar in [x, y]):
           fout.write("Datele de intrare nu corespund restrictiilor impuse\n")
           return
       fout.write("Datele de intrare corespund restrictiilor impuse\n")
       x_10 = int(x, b1)
       y_10 = int(y, b2)
       suma_10 = x_10 + y_10
       fout.write(str(suma_10) + '\n')


if __name__ == "__main__":

   main()

</syntaxhighlight>

Explicatie[edit | edit source]

110(2) = 6
213(5) = 58
6 + 58 = 64