0426 - Baza B: Difference between revisions

From Bitnami MediaWiki
No edit summary
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ă.
Programul afișează pe ecran valoarea cerută.
==Restricții de precizări==
==Restricții de precizări==
*1 ⩽ '''n'''  ⩽ 1.000.000.000
*1 ⩽ '''numar'''  ⩽ 1.000.000.000


*2 ⩽ '''b'''  ⩽ 10
*2 ⩽ '''baza'''  ⩽ 10


==Exemplul 1==
==Exemplu==
;Intrare
;Intrare


Line 24: Line 24:
: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
     return numar.isdigit() and 1 <= int(numar) <= 10000 and baza.isdigit() and 1 <= int(baza) <= 10
    return b.isdigit() and 1 <= int(b) <= 10


def max_cifra(n, b):
 
def max_cifra(numar, baza):
     max_cifra = 0
     max_cifra = 0


     while n > 0:
     while numar > 0:
         cifra = n % b
         cifra = numar % baza
    if cifra > max_cifra:
        if cifra > max_cifra:
        max_cifra = cifra
            max_cifra = cifra
         n //= b
         numar //= baza
 
    print(max_cifra)


        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: ")
     b = int(input("Introduceți baza de numerație b: "))
     baza = input("Introduceți baza de numerație b: ")


     if validare_date(n, b):
     if validare_date(numar, baza):
         n, b = int(n), int(b)
         numar, baza = int(numar), int(baza)
         print("Datele de intrare corespund restricțiilor impuse.")
         print("Datele de intrare corespund restricțiilor impuse.")
         max_cifra(n, b)
         max_cifra(numar, baza)
     else:
     else:
         print("Datele de intrare nu corespund restricțiilor impuse.")
         print("Datele de intrare nu corespund restricțiilor impuse.")


</syntaxhighlight>
</syntaxhighlight>

Revision as of 15:05, 19 March 2023

Cerință

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

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

Date de ieșire

Programul afișează pe ecran valoarea cerută.

Restricții de precizări

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

Exemplu

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

Rezolvare

Rezolvare ver. 1

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

   return numar.isdigit() and 1 <= int(numar) <= 10000 and baza.isdigit() and 1 <= int(baza) <= 10


def max_cifra(numar, baza):

   max_cifra = 0
   while numar > 0:
       cifra = numar % baza
       if cifra > max_cifra:
           max_cifra = cifra
       numar //= baza
   print(max_cifra)


if __name__ == '__main__':

   numar = input("Introduceți numărul n: ")
   baza = input("Introduceți baza de numerație b: ")
   if validare_date(numar, baza):
       numar, baza = int(numar), int(baza)
       print("Datele de intrare corespund restricțiilor impuse.")
       max_cifra(numar, baza)
   else:
       print("Datele de intrare nu corespund restricțiilor impuse.")

</syntaxhighlight>