#define NUM_SIZE 4
#define OP_SIZE 4
const double neglible = 10e-7;
void twentyFour(int x, int y, int z, int a);
bool tryTwentyFour(int* n, double(*op[])(double, double));
//基本运算
double add(double a, double b);
double sub(double a, double b);
double mul(double a, double b);
double divs(double a, double b);
void twentyFour(int x, int y, int z, int a)
{
int number[] = { x, y, z, a };
double(*op[4])(double a, double b) = { add, sub, mul, divs };
bool judge = false;
sort(number, number + 4);
while (next_permutation(number, number + 4)) //取所有的可能排列
{
if (tryTwentyFour(number, op))
judge = true;
}
if (!judge)
&n

本文介绍了一种实现24点游戏的算法,通过全排列和穷举运算符组合的方式判断给定的四个数字是否能通过加减乘除运算得到24。文章详细展示了算法的具体实现过程,包括基本运算定义、递归计算逻辑及结果验证。
最低0.47元/天 解锁文章
1313





