0340 - Control
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: "))
- 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>