我知道这个话题大约显示20次。但是,每个问题都不适合我的答案。
我想找到每个大于或等于0(自然数)的四元组(4个数),它们加起来等于一个给定值。这些四倍可以重复。
例如:
Wanted sum: 1
Possible quadruples:
0 0 0 1
0 0 1 0
0 1 0 0
1 0 0 0
我想把那些四倍作为输出。请注意,没有给定的数字数组(所有自然数都是可能的)。
我知道您可以通过蛮力获得,但是我想要最有效的方法。 有任何想法吗?
答案 0 :(得分:1)
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);