комбинации N одинаковых шаров в A разных ящиках

int f(int n,int a,int x)
{
        if(a==1)
        {
            if(n>=0 && n<=x)  //HERE WAS ERROR,sorry
                return 1;
            else 
                return 0;
        }

        int ans=0;

        for(int i=0;i<=x;i++)
            ans += f(n-i,a-1,x);

    return ans;
}

Здравствуйте! enter image description here

Пример:

enter image description here

Вот алгоритм, но он тратит очень много времени. Может быть, вы знаете более быстрый способ решите эту проблему? Большое спасибо и извините за беспокойство.

5
задан Alec Alameddine 24 April 2019 в 14:30
поделиться