假设数n,我们必须找到n的所有组合的总和,即nC0 + nC1 + nC2 + ... + nCn。 结果可能很大,所以最终答案应该是和%D(D = 10 ^ 9 + 7)。
我使用的方法是 -
long sum=0;
long combination=1;
for(int i=1;i<=n;i++){
combination=((combination*(n-i+1))/i)%D;
sum=(sum+combination)%D;
}
但这不起作用。
Real Problem statement和code。代码输出正确,直到n = 20.
答案 0 :(得分:0)
你应该修改最终输出,而不是沿途的每一步 数字也变得非常大,所以使用BigInteger而不是long。
这是我的解决方案
http://ide.geeksforgeeks.org/Ew3Epn
使用公式(2 * n)!/(n!)^ 2
在这里找到 - &gt; https://oeis.org/A000984