gpt4 book ai didi

c - 有没有办法在 while 或 for 循环中交换数学运算符?

转载 作者:行者123 更新时间:2023-12-05 01:25:47 25 4
gpt4 key购买 nike

我正在尝试用 C 语言编写一个程序,以尝试如何以各种可能的方式组合由用户输入的 6 个数字(到目前为止没有问题)。

我尝试使用搜索功能,但不太确定要查找什么。

它应该是这样的:

...
temp[i] = a + b + c + d - e - f;
i++;
temp[i] = a + b + c - d - e - f;
i++;
temp[i] = a + b - c - d - e - f;
i++;
...

还有乘法和除法。

最好能实现所有放在括号中而不使用所有数字的方法。

所以就像从这些数字中暴力破解所有可能的结果一样。

有没有什么方法可以在不手动对每个组合进行编码的情况下实现这一目标?

最佳答案

Recursion对于这类事情非常有用:

#include <stdio.h>

void compute_all_combinations(int *list, int length, int running_total) {
if (length <= 0) {
printf("%d\n", running_total);
return;
}
compute_all_combinations(list+1, length-1, running_total + *list);
compute_all_combinations(list+1, length-1, running_total - *list);
}

int main() {
int numbers[4] = { 3141, 5926, 5358, 9793 };
compute_all_combinations(numbers, 4, 0);
return 0;
}

compute_all_combinations() 函数将接受任意长度的列表(在合理范围内)。它递归地调用自己来跨越代表您要计算的总和的整个决策树(即,在每个节点处,向左/向右叉以添加/减去节点的值),并打印出每个叶节点的结果。我希望它是不言自明的

关于c - 有没有办法在 while 或 for 循环中交换数学运算符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60196706/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com