找到所有数字组合以求和而不重复

时间:2014-02-25 19:41:18

标签: vba excel-vba excel

我希望得到所有数字组合。

我的输入是X是可变的,X是数字的数量,

例如:

X=4表示我们有1,2,3,4

x=100 means 1,2,3,4,5,,98,99,100

现在我想获得{(1,2)(1,3)(1,4)(2,3)(2,4)(3,4),(1,2,3)(1,3,4)…}

我们不能像(1,2)(2,1)(1,2,3)(1,3,2)

这样重复序列

我希望获得所有这些数字可以求和的组合,而无需重复序列。

任何人都可以帮我找到它的算法吗?我必须使用for循环

在VBA的Excel中编码

1 个答案:

答案 0 :(得分:1)

“算法”由数学求解,由X乘以2的组合给出:

X!/((X-2)!*2!)=X!/((X-2)!*2)

(note: Just in case... "!" is the factorial...)

现在,如果您想使用for-loop计算阶乘(用c编写):

int main()

{

    int num,factorial=1;

    cout<<" Enter Number To Find Its Factorial:  ";

    cin>>num;

    for(int a=1;a<=num;a++)

    {

        factorial=factorial*a;

    }