0340 - Control

De la Universitas MediaWiki

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

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)

Rezolvare ver. 2

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)