0426 - Baza B: Difference between revisions

From Bitnami MediaWiki
Pagină nouă: ==Cerință== Se dă un număr natural '''n''' și o bază de numerație '''b'''. Să se determine cea mai mare cifră a reprezentării lui '''n''' în baza '''b'''. ==Date de intrare== Programul citește de la tastatură două numere naturale '''n b''' . ==Date de ieșire== Programul afișează pe ecran valoarea cerută. ==Restricții de precizări== *1 ⩽ '''n'''  ⩽ 10000 *1 ⩽ '''b'''  ⩽ 10 ==Exemplul 1== ;Intrare :878 :6 ;Ieșire :Datele introduse co...
 
No edit summary
 
(5 intermediate revisions by 2 users not shown)
Line 1: Line 1:


==Cerință==
==Cerință==
Se dă un număr natural '''n''' și o bază de numerație '''b'''. Să se determine cea mai mare cifră a reprezentării lui '''n''' în baza '''b'''.
Se dă un număr natural '''numar''' și o bază de numerație '''baza'''. Să se determine cea mai mare cifră a reprezentării lui '''numar''' în baza '''baza'''.
==Date de intrare==
==Date de intrare==
Programul citește de la tastatură două numere naturale '''n b''' .
Programul citește de la tastatură două numere naturale '''numar,  baza''' .
==Date de ieșire==
==Date de ieșire==
Programul afișează pe ecran valoarea cerută.
Dacă datele sunt introduse corect, pe ecran se va afișa: "Datele de intrare corespund restricțiilor impuse." și programul afișează pe ecran valoarea cerută. În caz contrar, se va afișa pe ecran: "Datele de intrare nu corespund restricțiilor impuse."
 
==Restricții de precizări==
==Restricții de precizări==
*1 ⩽ '''n'''  ⩽ 10000
*1 ⩽ '''numar'''  ⩽ 1.000.000.000


*1 ⩽ '''b'''  ⩽ 10
*2 ⩽ '''baza'''  ⩽ 10
==Exemplul 1==
 
==Exemplu==
;Intrare
;Intrare


Line 23: Line 25:
:4
:4


== Rezolvare ver. 1 ==
==Rezolvare==
=== Rezolvare ver. 1 ===
<syntaxhighlight lang="python" line="1" start="1">
<syntaxhighlight lang="python" line="1" start="1">
def validare_date(n, b):
def validare_date(numar, baza):
     return n.isdigit() and 1 <= int(n) <= 10000
    # Funcție pentru validarea numerelor de intrare
    return b.isdigit() and 1 <= int(b) <= 10
    # Returnează True dacă numerele sunt valide, False în caz contrar
     return numar.isdigit() and 1 <= int(numar) <= 10000 and baza.isdigit() and 1 <= int(baza) <= 10


def max_cifra():
    max_cifra = 0


     while n > 0:
def max_cifra(numar, baza):
         cifra = n % b
    # Funcție pentru calcularea și afișarea celei mai mari cifre într-un număr într-o anumită bază
    if cifra > max_cifra:
    max_cifra = 0 # Variabila pentru stocarea celei mai mari cifre, inițializată cu 0
        max_cifra = cifra
 
         n //= b
     while numar > 0: # Parcurgerea cifrelor numărului până când acesta devine 0
         cifra = numar % baza # Obținerea ultimei cifre a numărului în baza specificată
        if cifra > max_cifra: # Compararea cifrei curente cu cea mai mare cifră găsită până acum
            max_cifra = cifra # Dacă cifra curentă este mai mare, o înlocuim pe cea mai mare cifră
         numar //= baza # Eliminarea ultimei cifre din număr, trecând la următoarea cifră în bază
 
    print(max_cifra) # Afișarea celei mai mari cifre găsite


        print("Cea mai mare cifră a reprezentării lui n în baza b este:", max_cifra)


if __name__ == '__main__':
if __name__ == '__main__':
     n = int(input("Introduceți numărul n: "))
     numar = input("Introduceți numărul n: ") # Solicitare număr de la utilizator
     b = int(input("Introduceți baza de numerație b: "))
     baza = input("Introduceți baza de numerație b: ") # Solicitare bază de numerație de la utilizator


     if validare_date(n, b):
     if validare_date(numar, baza): # Verificare validitate număr și bază utilizând funcția validare_date()
         n, b = int(n), int(b)
         numar, baza = int(numar), int(baza) # Convertirea valorilor număr și bază la tipul int
         print("Datele de intrare corespund restricțiilor impuse.")
         print("Datele de intrare corespund restricțiilor impuse.")
         max_cifra(n, b)
         max_cifra(numar, baza) # Apelarea funcției max_cifra() pentru a calcula și afișa cea mai mare cifră
     else:
     else:
         print("Datele de intrare nu corespund restricțiilor impuse.")
         print("Datele de intrare nu corespund restricțiilor impuse.")


</syntaxhighlight>
</syntaxhighlight>

Latest revision as of 08:50, 25 April 2023

Cerință[edit | edit source]

Se dă un număr natural numar și o bază de numerație baza. Să se determine cea mai mare cifră a reprezentării lui numar în baza baza.

Date de intrare[edit | edit source]

Programul citește de la tastatură două numere naturale numar, baza .

Date de ieșire[edit | edit source]

Dacă datele sunt introduse corect, pe ecran se va afișa: "Datele de intrare corespund restricțiilor impuse." și programul afișează pe ecran valoarea cerută. În caz contrar, se va afișa pe ecran: "Datele de intrare nu corespund restricțiilor impuse."

Restricții de precizări[edit | edit source]

  • 1 ⩽ numar  ⩽ 1.000.000.000
  • 2 ⩽ baza  ⩽ 10

Exemplu[edit | edit source]

Intrare
878
6
Ieșire
Datele introduse corespund restricțiilor impuse.
4

Rezolvare[edit | edit source]

Rezolvare ver. 1[edit | edit source]

<syntaxhighlight lang="python" line="1" start="1"> def validare_date(numar, baza):

   # Funcție pentru validarea numerelor de intrare
   # Returnează True dacă numerele sunt valide, False în caz contrar
   return numar.isdigit() and 1 <= int(numar) <= 10000 and baza.isdigit() and 1 <= int(baza) <= 10


def max_cifra(numar, baza):

   # Funcție pentru calcularea și afișarea celei mai mari cifre într-un număr într-o anumită bază
   max_cifra = 0 # Variabila pentru stocarea celei mai mari cifre, inițializată cu 0
   while numar > 0: # Parcurgerea cifrelor numărului până când acesta devine 0
       cifra = numar % baza # Obținerea ultimei cifre a numărului în baza specificată
       if cifra > max_cifra: # Compararea cifrei curente cu cea mai mare cifră găsită până acum
           max_cifra = cifra # Dacă cifra curentă este mai mare, o înlocuim pe cea mai mare cifră
       numar //= baza # Eliminarea ultimei cifre din număr, trecând la următoarea cifră în bază
   print(max_cifra) # Afișarea celei mai mari cifre găsite


if __name__ == '__main__':

   numar = input("Introduceți numărul n: ") # Solicitare număr de la utilizator
   baza = input("Introduceți baza de numerație b: ") # Solicitare bază de numerație de la utilizator
   if validare_date(numar, baza): # Verificare validitate număr și bază utilizând funcția validare_date()
       numar, baza = int(numar), int(baza) # Convertirea valorilor număr și bază la tipul int
       print("Datele de intrare corespund restricțiilor impuse.")
       max_cifra(numar, baza) # Apelarea funcției max_cifra() pentru a calcula și afișa cea mai mare cifră
   else:
       print("Datele de intrare nu corespund restricțiilor impuse.")


</syntaxhighlight>