描述 | |
---|---|
知识点 | 循环 |
运行时间限制 | 10M |
内存限制 | 128 |
输入 | 输入4个int整数 |
输出 | 返回能否得到24点,能输出true,不能输出false |
样例输入 | 7 2 1 10 |
样例输出 | true |
#include <iostream>
#include <string>
#include <algorithm>
#include <vector>
#include <fstream>
#include <map>
using namespace std;
int Is24Game(int *a, int i, int result)
{
if (result == 24)
return 1;
else if (result > 24 || i >= 4)
return 0;
else
return Is24Game(a, i + 1, result + a[i]) ||
Is24Game(a, i + 1, result - a[i]) ||
Is24Game(a, i + 1, result * a[i]) ||
Is24Game(a, i + 1, result == 0 ? 0 : result / a[i]);
}
int main()
{
int *a = new int[4];
for (int i = 0; i < 4; i++)
cin >> a[i];
sort(a, a + 4);
bool flag = false;
do
{
if (Is24Game(a, 0, 0))
{
cout <<"true";
flag = true;
break;
}
} while (next_permutation(a, a + 4));
if (!flag)
cout << "false";
delete[]a;
return 0;
}