首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果您只能投资10美元增量,则输出投资于10只股票的方式总数

如果您只能投资10美元增量,则输出投资于10只股票的方式总数
EN

Stack Overflow用户
提问于 2015-04-19 22:00:21
回答 1查看 53关注 0票数 1

我在AMEX的面试问题中得到了这个问题,虽然可视化答案很容易,但我很难弄清楚如何真正产生答案。

有没有人有一个好的方法解决这样的组合问题,通过除法和征服?

示例输出:

数组代表了10种不同的股票,以及你在每只股票中投资了多少。

(100,0,0,0,0,0,0,0),(0,100,0,0,0,0,0,0,0,0,0,0,0)等

(90,10,0,0,0,0,0,0),(90,0,10,0,0,0,0,0,0,0,0)等。

每一个可能的组合。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-19 22:04:15

您可以使用递归。

在每只股票i上,你还有一笔钱要花,你可以在任何地方以10的增量花费这个数额。对于最后一家商店,你必须花剩下的钱。

每次组合后,我会调用侦听器、回调或打印数组。

代码语言:javascript
复制
public static void printCombinations(int stocks, int cash, int cashMultiple) {
    int[] amounts = new int[stocks];
    printCombinations(amounts, 0, cash, cashMultiple);
}

public static void printCombinations(int[] amounts, int n, int cash, int cashMultiple) {
    if (n == amounts.length-1) {
        amounts[n] = cash;
        System.out.println(Arrays.toString(amounts));
        return;
    }
    for (int i = 0; i <= cash ; i += cashMultiple) {
        amounts[n] = i;
        printCombinations(amounts, n+1, cash - i, cashMultiples);
    }
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29736415

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档