用c++写代码,给出四个一到十的数字,判断通过加减乘除是否可以得到24。
时间: 2023-12-03 21:46:59 浏览: 51
以下是一种实现方式:
```c++
#include <iostream>
using namespace std;
bool judge(double a, double b, double c, double d) {
double arr[4] = {a, b, c, d};
char op[3] = {'+', '-', '*', '/'};
for (int i = 0; i < 4; i++) {
for (int j = 0; j < 4; j++) {
if (j == i) continue;
for (int k = 0; k < 4; k++) {
if (k == i || k == j) continue;
for (int m = 0; m < 4; m++) {
if (m == i || m == j || m == k) continue;
for (int n = 0; n < 3; n++) {
double res = 0;
if (op[n] == '+') {
res = arr[i] + arr[j];
} else if (op[n] == '-') {
res = arr[i] - arr[j];
} else if (op[n] == '*') {
res = arr[i] * arr[j];
} else {
if (arr[j] == 0) continue;
res = arr[i] / arr[j];
}
double tmp[3];
int idx = 0;
for (int p = 0; p < 4; p++) {
if (p == i || p == j) continue;
tmp[idx++] = arr[p];
}
tmp[2] = res;
if (judge(tmp[0], tmp[1], tmp[2], arr[m])) {
return true;
}
}
}
}
}
}
return false;
}
int main() {
double arr[4];
for (int i = 0; i < 4; i++) {
cin >> arr[i];
}
if (judge(arr[0], arr[1], arr[2], arr[3])) {
cout << "Yes" << endl;
} else {
cout << "No" << endl;
}
return 0;
}
```
这里使用递归思想,枚举四个数字的所有可能性,并在过程中进行加减乘除的操作。如果能得到24,则返回 true,否则返回 false。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![txt](https://img-home.csdnimg.cn/images/20210720083642.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)