0426 - Baza B: Difference between revisions
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 ''' | 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 ''' | Programul citește de la tastatură două numere naturale '''numar, baza''' . | ||
==Date de ieșire== | ==Date de ieșire== | ||
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 ⩽ ''' | *1 ⩽ '''numar''' ⩽ 1.000.000.000 | ||
* | *2 ⩽ '''baza''' ⩽ 10 | ||
== | |||
==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( | def validare_date(numar, baza): | ||
return | # 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 | |||
while | def max_cifra(numar, baza): | ||
cifra = | # 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__': | 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( | 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.") | print("Datele de intrare corespund restricțiilor impuse.") | ||
max_cifra( | 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>