Muszę obliczyć wyrażenie [(a+b)! / (a!*b!)] % 1000000007
, tak aby wyniki były ok. Mam funkcję Silnia:
static int Silnia(int a)
{
long result = 1;
for (int i = 1; i <= a; i++) result = (result * i) % 1000000007;
return (int)result;
}
i funkcję liczacą:
static int PathCount(int a, int b)
{
int sum = a+b;
int max = a > b ? a : b;
int min = a < b ? a : b;
long result = 1;
while (sum != max )
{
result = (result * sum ) % 1000000007;
--sum ;
}
return (int)result / Silnia(min);
}
Ale wyniki nie zawsze się zgadzają, dostaje często 0 lub 1 :(
dodanie znacznika `` i zamiana znacznika <code class="cpp"> na <code class="csharp">
- @furious programming