3741 - StarsAndBars1

De la Universitas MediaWiki

Cerința

Gigel are n bile și k cutii. În câte moduri poate plasa Gigel bilele în cutii, știind că pot rămâne și cutii goale.

Date de intrare

Programul citește de la tastatură numerele naturale n k.

Date de ieșire

Programul va afișa pe ecran numărul C, reprezentând rezultatul.

Restricții și precizări

1 ≤ k , n ≤ 500

Exemplu

intrare
3 2
ieșire
4

Explicație

Avem n=3 bile și k=2 cutii. Cele 4 modalități de a plasa bilele sunt
1. ||***|
2.|*|**|
3.|**|*|
4.|***||

Rezolvare

Rezolvare ver.1

def factorial(x):
    if not (1 <= k):
        raise ValueError
    if not (n <= 500):
        raise ValueError
    if x == 0 or x == 1:
        return 1
    else:
        return x * factorial(x-1)

def coeficient_binomial(n, k):
    return factorial(n + k - 1) // (factorial(k - 1) * factorial(n - 1))

n, k = map(int, input("Introduceți valorile lui n și k (separate prin spațiu): ").split())
rezultat = coeficient_binomial(n + k - 1, k - 1)
print("Numărul de moduri în care Gigel poate plasa bilele în cutii este:", rezultat)