0340 - Control

From Bitnami MediaWiki

sursa: [1]

Explicatii[edit | edit source]

Pentru un număr natural dat, se calculează cifra de control în felul următor:

  • se determină suma cifrelor
  • pentru rezultat se determină suma cifrelor
  • se continuă până când suma devine un număr dintr-o singură cifră, aceasta fiind cifra de control a numărului inițial

Cerinţa[edit | edit source]

Pentru un număr citit, să se determine cifra de control.

Date de intrare[edit | edit source]

Programul citește de la tastatură numărul natural.

Date de ieşire[edit | edit source]

Programul afișează pe ecran numărul C, reprezentând cifra de control a numarului.

Restricții și precizări[edit | edit source]

  • numarul are cel mult nouă cifre

Exemplu[edit | edit source]

Intrare
865247
Ieșire
Datele introduse sunt valide.
5

Explicatie[edit | edit source]

Suma cifrelor lui 865247 este 32, iar suma cifrelor lui 32 este 5.

Rezolvare[edit | edit source]

Rezolvare ver. 1[edit | edit source]

<syntaxhighlight lang="python" line>

def calculeaza_cifra_control(numar):

   # Validare date de intrare
   if numar < 0 or numar > 999999999:
       print("Datele introduse nu sunt valide. Introduceti un numar natural cu cel mult nouă cifre.")
   else:
       # Calculam cifra de control
       while numar > 9:
           suma = 0
           while numar > 0:
               cifra = numar % 10
               suma += cifra
               numar //= 10
           numar = suma
       cifra_control = numar
       print("Datele introduse sunt valide.")
       # Afisam cifra de control
       print("Cifra de control a numarului este", cifra_control)


if __name__ == "__main__":

   numar = int(input("Introduceti un numar natural: "))
   calculeaza_cifra_control(numar)

</syntaxhighlight>

Rezolvare ver. 2[edit | edit source]

<syntaxhighlight lang="python" line>

numar = int(input("Introduceti un numar natural: "))

  1. Validare date de intrare

if numar <= 0 or numar > 999999999:

   print("Datele introduse nu sunt valide. Introduceti un numar natural cu cel mult nouă cifre.")

else:

   # Calculam cifra de control
   while numar > 9:
       suma = 0
       while numar > 0:
           cifra = numar % 10
           suma += cifra
           numar = numar // 10
       numar = suma
   cifra_control = numar
   print("Datele introduse sunt valide.")
   # Afisam cifra de control
   print("Cifra de control a numarului este", cifra_control)

</syntaxhighlight>