1016 - imparpar

De la Universitas MediaWiki
Versiunea din 2 ianuarie 2024 22:23, autor: Brianna Waltner (discuție | contribuții) (Pagină nouă: == Cerinţa == Se dă '''n''' un număr natural. Să se afle în câte moduri putem aranja numerele de la '''1''' la '''n''' astfel încât numerele pare să fie situate pe poziții impare iar cele impare pe poziții pare ? == Date de intrare == Programul citește de la tastatură numărul natural '''n'''. == Date de ieșire == Programul va afișa pe ecran numărul de moduri în care putem aranja numerele de la '''1''' la '''n''' astfel încât numerele pare să fie situate p...)
(dif) ← Versiunea anterioară | Versiunea curentă (dif) | Versiunea următoare → (dif)

Cerinţa

Se dă n un număr natural. Să se afle în câte moduri putem aranja numerele de la 1 la n astfel încât numerele pare să fie situate pe poziții impare iar cele impare pe poziții pare ?

Date de intrare

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

Date de ieșire

Programul va afișa pe ecran numărul de moduri în care putem aranja numerele de la 1 la n astfel încât numerele pare să fie situate pe poziții impare iar cele impare pe poziții pare.

Restricţii şi precizări

  • 1 ⩽ n ⩽ 20

Exemplul 1

Intrare
4
Iesire
Datele de intrare corespund restrictiilor impuse
4

Exemplu 2

Intrare
25 
Iesire
Datele de intrare nu corespund restrictiilor impuse

Rezolvare

from math import factorial


def compute_arrangements(n):
    even_positions = n // 2
    odd_positions = n - even_positions

    even_numbers = n // 2
    odd_numbers = n - even_numbers

    if even_positions < even_numbers or odd_positions < odd_numbers:
        return 0
    else:
        return factorial(even_positions) * factorial(odd_positions)


def main():
    n = int(input())

    if n > 20:
        print("Datele de intrare nu corespund restrictiilor impuse")
        return

    arrangements = compute_arrangements(n)
    print("Datele de intrare corespund restrictiilor impuse")
    print(arrangements)


if __name__ == "__main__":
    main()

Explicatie

Numerele de la 1 la 4 se pot aranja astfel : (2,1,4,3), (2,3,4,1), (4,1,2,3), (4,3,2,1) astfel încât numerele pare sunt pe poziții impare și numerele impare sunt pe poziții pare. Avem 4 moduri de aranjare.