0340 - Control: Difference between revisions
No edit summary |
|||
Line 1: | Line 1: | ||
sursa: [https://www.pbinfo.ro/probleme/340/control] | |||
== Explicatii == | == Explicatii == | ||
Pentru un număr natural dat, se calculează cifra de control în felul următor: | Pentru un număr natural dat, se calculează cifra de control în felul următor: | ||
Line 30: | Line 31: | ||
== Rezolvare == | == 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> | <syntaxhighlight lang="python" line> | ||
numar = int(input("Introduceti un numar natural: ")) | |||
numar = input("Introduceti un numar natural: ") | |||
# Validare date de intrare | # Validare date de intrare | ||
if | if numar <= 0 or numar > 999999999: | ||
print("Datele introduse nu sunt valide. Introduceti un numar natural cu cel mult nouă cifre.") | print("Datele introduse nu sunt valide. Introduceti un numar natural cu cel mult nouă cifre.") | ||
else: | else: | ||
# Calculam cifra de control | # Calculam cifra de control | ||
while | while numar > 9: | ||
suma = 0 | suma = 0 | ||
while numar > 0: | |||
suma += | cifra = numar % 10 | ||
numar = | suma += cifra | ||
cifra_control = | numar = numar // 10 | ||
numar = suma | |||
cifra_control = numar | |||
print("Datele introduse sunt valide.") | print("Datele introduse sunt valide.") | ||
# Afisam cifra de control | # Afisam cifra de control | ||
print("Cifra de control a numarului este", cifra_control) | print("Cifra de control a numarului este", cifra_control) | ||
</syntaxhighlight> | </syntaxhighlight> |
Latest revision as of 23:16, 15 May 2023
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: "))
- 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>