【问题标题】:Recursive nCr Combinations in JavaJava中的递归nCr组合
【发布时间】:2022-01-20 07:43:27
【问题描述】:

我有一个任务是创建两个计算 nCr 的递归方法(在 Java 中)。我写的第一个方法是使用帕斯卡三角形。它有效,帕斯卡三角形非常棒。

但是现在我遇到了一个问题,因为我无法思考/找到任何其他递归解决方案,所以我编写了第二个计算 nCr 的方法。我曾尝试使用/编写一种基于找出阶乘的方法,但是当我使用大数字时,该方法会崩溃。

有人可以给我一些关于其他递归计算 nCr 方法的提示、建议和建议吗?

非常感谢!

【问题讨论】:

  • 您可以使用 (n + 1 over k +1) 是 (n over k) + (n over k +1) 的事实
  • C++ 怎样解决你的问题?

标签: java recursion methods combinations ncr


【解决方案1】:

我可以提供用 C++ 创建的问题的解决方案。

#include <iostream>
#include <cstring>
int dp[100][100];
int choose(int a, int b)
{
    if(a < b) return 0;
    if(dp[a][b] != -1) return dp[a][b];
    if(b == 0) return 1;
    if(b == 1) return a;
    dp[a][b] = (choose(a - 1, b) + choose(a - 1, b - 1));
    return dp[a][b];
}
int main()
{
    memset(dp, -1, sizeof(dp));
    return 0;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-13
    • 2014-03-31
    相关资源
    最近更新 更多