我知道这个话题在这里显示了 20 次。但是,每个问题都不符合我的答案。
我想找到大于或等于 0(自然数)的每个四元组(4 个数字),其总和为给定值。这些四元组可以重复。
例如:
Wanted sum: 1
Possible quadruples:
0 0 0 1
0 0 1 0
0 1 0 0
1 0 0 0
我想将这些四倍作为输出。请注意,没有给定的数字数组(所有自然数都是可能的)。
我知道你可以通过蛮力得到这个,但我想要最有效的方法。有任何想法吗?
for(int i = 0; i <= sum; i++)
for(int j = 0; j <= sum - i; j++)
for(int k = 0; k <= sum - i - j; k++)
output(i, j, k, sum - i - j - k);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句