0340 - Control

From Bitnami MediaWiki
Revision as of 23:16, 15 May 2023 by Petras.du.ioana (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

sursa: [1]

Explicatii

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

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

Date de intrare

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

Date de ieşire

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

Restricții și precizări

  • numarul are cel mult nouă cifre

Exemplu

Intrare
865247
Ieșire
Datele introduse sunt valide.
5

Explicatie

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

Rezolvare

Rezolvare ver. 1

<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

<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>