1892 - S Norocos: Diferență între versiuni

De la Universitas MediaWiki
 
(Nu s-a afișat o versiune intermediară efectuată de același utilizator)
Linia 35: Linia 35:
     else:
     else:
         return False
         return False
def print_sequence(n):
    if n % 2 == 1:
        k = (n + 1) // 2
        while n > 0:
            print(k, end=' ')
            k += 1
            n -= 1
    else:
        print("NU ESTE NOROCOS")




Linia 42: Linia 53:
         print("Datele introduse nu corespund cerințelor.")
         print("Datele introduse nu corespund cerințelor.")
         exit()
         exit()
     else:
     else:
         print("Datele introduse corespund cerintelor.")
         print("Datele introduse corespund cerintelor.")


     if n % 2 == 1:
     print_sequence(n)
        k = (n+1)//2
        while n > 0:
            print(k, end=' ')
            k += 1
            n -= 1
    else:
        print("NU ESTE NOROCOS")


</syntaxhighlight>
</syntaxhighlight>


== Explicatie rezolvare ==
== Explicatie rezolvare ==
Acest program primește un număr întreg n de la utilizator și verifică dacă numărul se încadrează între '''1 și 1000'''.
Acest program primește un număr întreg de la utilizator și îl validează folosind funcția `validate_n`. Funcția `validate_n` verifică dacă numărul este de tip întreg și se încadrează în intervalul cuprins între 1 și 1000. Dacă numărul este valid, se afișează un mesaj corespunzător și se continuă execuția programului. În caz contrar, se afișează un mesaj de eroare și programul se oprește.
Dacă '''n''' este un număr impar, programul va imprima primele '''n''' numere naturale impare consecutive începând cu '''(n+1)//2'''.
 
În caz contrar, programul va afișa '''NU ESTE NOROCOS'''.
Apoi, programul folosește funcția `print_sequence` pentru a afișa o secvență de numere. Dacă numărul introdus este impar, se calculează valoarea `k` ca fiind jumătatea numărului plus unu, iar apoi se afișează `n` numere consecutive începând cu `k`. Dacă numărul introdus este par, se afișează mesajul "NU ESTE NOROCOS".
Funcția '''validate_n''' este folosită pentru a verifica dacă '''n-ul''' introdus este un număr întreg între '''1''' și '''1000'''.
 
În final, programul rulează în modul principal (`if __name__ == '__main__'`) unde solicită utilizatorului să introducă un număr și verifică validitatea acestuia folosind funcția `validate_n`. Dacă numărul nu este valid, se afișează un mesaj de eroare și programul se oprește. În caz contrar, se afișează un mesaj de confirmare și se afișează secvența de numere folosind funcția `print_sequence`.

Versiunea curentă din 14 mai 2023 21:35

Sursa: [1]

Cerinţa

Se dă un număr natural n. Dacă numărul este norocos afișați cele n numere consecutive care adunate dau pătratul acestuia.

Date de intrare

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

Date de ieșire

Daca n este norocos, programul va afișa pe ecran cele n numere consecutive care adunate dau n * n, separate prin spații și mesajul "Datele introduse corespund cerintelor." În caz contrar, programul va afișa mesajele NU ESTE NOROCOS și "Datele introduse nu corespund cerintelor."

Restricţii şi precizări

  • 1 ⩽ n ⩽ 1000

Exemplul 1

Intrare
7
Ieșire
Datele introduse corespund cerintelor.
4 5 6 7 8 9 10


Exemplul 2

Intrare
8
Ieșire
Datele introduse corespund cerintelor.
NU ESTE NOROCOS


Rezolvare

#1892
def validate_n(n):
    if isinstance(n, int) and 1 <= n <= 1000:
        return True
    else:
        return False


def print_sequence(n):
    if n % 2 == 1:
        k = (n + 1) // 2
        while n > 0:
            print(k, end=' ')
            k += 1
            n -= 1
    else:
        print("NU ESTE NOROCOS")


if __name__ == '__main__':
    n = int(input("n: "))
    if not validate_n(n):
        print("Datele introduse nu corespund cerințelor.")
        exit()
    else:
        print("Datele introduse corespund cerintelor.")

    print_sequence(n)

Explicatie rezolvare

Acest program primește un număr întreg de la utilizator și îl validează folosind funcția `validate_n`. Funcția `validate_n` verifică dacă numărul este de tip întreg și se încadrează în intervalul cuprins între 1 și 1000. Dacă numărul este valid, se afișează un mesaj corespunzător și se continuă execuția programului. În caz contrar, se afișează un mesaj de eroare și programul se oprește.

Apoi, programul folosește funcția `print_sequence` pentru a afișa o secvență de numere. Dacă numărul introdus este impar, se calculează valoarea `k` ca fiind jumătatea numărului plus unu, iar apoi se afișează `n` numere consecutive începând cu `k`. Dacă numărul introdus este par, se afișează mesajul "NU ESTE NOROCOS".

În final, programul rulează în modul principal (`if __name__ == '__main__'`) unde solicită utilizatorului să introducă un număr și verifică validitatea acestuia folosind funcția `validate_n`. Dacă numărul nu este valid, se afișează un mesaj de eroare și programul se oprește. În caz contrar, se afișează un mesaj de confirmare și se afișează secvența de numere folosind funcția `print_sequence`.