n在java中使用整数类型n和k选择k

时间:2011-07-20 08:32:08

标签: java

我被赋予了一项任务,需要使用n和k来计算出n选择k问题。 我的条件是我不能使用int以外的其他数据类型。 我无法使用BigInteger等包 int nk可以是200以下的任何数字。 如何避免数量增长过大?因为程序会在n > 20时爆炸 感谢。

维基百科"n Choose k" or "Binomial coefficient"

2 个答案:

答案 0 :(得分:3)

使用递归关系:(n,k)=(n-1,k-1)+(n-1,k)

基本情况:(n,0)= 1; (0,k)= 0

答案 1 :(得分:1)

我认为这个问题要求你创建自己的数据结构,可以容纳大量的数据,或者代表巨大的数字。一旦完成,其余的都是微不足道的。您可能需要查看BigInteger的源代码,看看他们是如何做到的。