我有这个问题:
假设我们有这个简单的等式
x1 + x2 + x3 + x4 + x5 = 20
我希望打印此等式的所有非负整数解,我必须只使用数字3, 4, 5, 6
例如:
0 + 4 + 4 + 6 + 6 = 20
etc.
我不想用特定的编程语言编写它,只能用伪代码
有什么想法吗?
答案 0 :(得分:0)
这可能有用: Finding all possible combinations of numbers to reach a given sum
你可以将数字集开始为[3,4,5,6]而不是在选择后删除元素,如果你得到了所需数量的元素,则检查递归的深度。
这更通用,可以解析具有不同数量元素的方程式,而无需添加/删除嵌套循环。
答案 1 :(得分:0)
在java代码中
int []numbers = {0, 3, 4, 5, 6};
int res=20;
int sum=0;
for(int i:numbers)
for(int j:numbers)
for(int k:numbers)
for(int l:numbers)
for(int m:numbers) {
sum = i + j + k + l + m;
if(sum==res) {
String solution = i + " " + j + " " + k + " " + l +" " + m;
Log.i("solution", "---- " + solution);}
}
在伪代码中是这样的:
FOR each number1 in the number_list
FOR each number2 in the number_list
FOR each number3 in the number_list
FOR each number4 in the number_list
FOR each number5 in the number_list
sum = number1+number2+number3+number4+number5;
IF sum IS EQUAL TO 20 THEN
Print number1, number2, number3, number4, number5
ENDIF
ENDFOR
ENDFOR
ENDFOR
ENDFOR
ENDFOR