给定x,我如何找到加起来为x的所有四个数字的集合

时间:2015-03-27 02:16:04

标签: algorithm data-structures language-agnostic numbers

我知道如何找到一组两个数字。我可以将所有数字从0到X-1排序。将指针P1置于0,将P2指向X-1,并且对于每一步,将P1增加1并将P2减1。 如何开始查找所有4组数字?

1 个答案:

答案 0 :(得分:1)

一个(很多)简单解决方案:一个递归函数,它生成一个数字并使用另一个调用x和下一个调用x。伪代码:

generate(x, digits, current[])
{
    if digits < 1
        print all current´s in one (single) line
        return
    for every i from 0 to x
        add i as new element to current
        generate (x - i, digits - 1, current)
        remove the last element of current again
}

当前是一些列表,数组等,第一次调用时为空 x是数字,例如数字。第一次打电话给你。