1411 - Numere 13

De la Universitas MediaWiki
Versiunea pentru tipărire nu mai este suportată și poate avea erori de randare. Vă rugăm să vă actualizați bookmarkurile browserului și să folosiți funcția implicită de tipărire a browserului.

sursa: [1]

Cerinţa

Se citesc perechi de numere naturale până la citirea a două valori nule. Să se determine câte dintre perechi încep cu aceeași cifră.

Date de intrare

Programul citește de la tastatură perechi de numere naturale. Citirea se încheie la introducerea a două valori nule.

Date de ieşire

Programul va afișa pe ecran valoarea cerută.

Restricții și precizări

  • se vor citi cel mult 1000 de perechi de numere;
  • ultima pereche citită nu se va lua în considerare;
  • toate numerele citite vor fi mai mici decât 1.000.000;
  • toate numerele citite sunt nenule, cu excepția ultimelor două;

Exemplu

Intrare
329 39780
9686 6659
6121 846
7938 73173
5352 5129
7243 3765
3750 3779
0 0
Ieșire
4

Explicație

Perechile care respecta regula sunt:

329 39780
7938 73173
5352 5129
3750 3779

Rezolvare

def verifica_numerele(primul_numar, al_doilea_numar):
    if primul_numar != 0 and al_doilea_numar != 0:
        if len(str(primul_numar)) > 1 and str(primul_numar)[0] == "-":
            return False
        elif len(str(al_doilea_numar)) > 1 and str(al_doilea_numar)[0] == "-":
            return False
        else:
            prima_cifra_primul_numar = str(primul_numar)[0]
            prima_cifra_al_doilea_numar = str(al_doilea_numar)[0]
            if prima_cifra_primul_numar == prima_cifra_al_doilea_numar:
                return True
    return False


def calculeaza_nr_perechi():
    nr_perechi = 0
    while True:
        primul_numar = int(input("Introduceți primul numar: "))
        al_doilea_numar = int(input("Introduceți al doilea numar: "))

        if primul_numar == 0 and al_doilea_numar == 0:
            break

        if verifica_numerele(primul_numar, al_doilea_numar):
            nr_perechi += 1
            print("Cele doua numere incep cu aceeasi cifra.")

    return nr_perechi


def afiseaza_nr_perechi(nr_perechi):
    print("Datele sunt introduse corect.")
    print(f"Numarul total de perechi care incep cu aceeasi cifra este: {nr_perechi}")


if __name__ == "__main__":
    nr_perechi = calculeaza_nr_perechi()
    afiseaza_nr_perechi(nr_perechi)