http://acm.hdu.edu.cn/showproblem.php?pid=1427

C++版本一

题解:DFS

运算符可以重复,所以一共有4!*4^4种情况,并不算特别多(点数增多就是指数级的了) 
每次取2个数做尝试运算(+,-,*,/),得到1个结果数,再放回原来的集合,那么集合就从4个元素降至3个,减少了一个,直到集合元素中只有一个数字,如果这个数字是24,那么就可以计算;如果不是,那此尝试不能算得24点,回溯。 
用递归处理接下来的同类型的子问题。 
此题还要注意将字符转换成数字。

#include<iostream>
#include<string>
using namespace std;const int CardsSum = 4;
const int ResultValue = 24;
int number[CardsSum];bool PointsGame(int n)
{if (n == 1){// 如果只剩下一个数字,且这个数字是24,那么返回true,否则返回falseif (number[0] == ResultValue)return true;elsereturn false;}for (int i = 0; i < n; i++){for (int j = i + 1; j < n; j++){int a = number[i], b = number[j];number[j] = number[n - 1];//压缩卡数// 取两个数字并且进行加减乘除运算尝试number[i] = a + b;if (PointsGame(n - 1))return true;number[i] = a - b;if (PointsGame(n - 1))return true;number[i] = b - a;if (PointsGame(n - 1))return true;number[i] = a * b;if (PointsGame(n - 1))return true;if (b != 0 && (a%b) == 0){number[i] = a / b;if (PointsGame(n - 1))return true;}if (a != 0 && (b%a) == 0){number[i] = b / a;if (PointsGame(n - 1))return true;}// 如果这两个数相运算无法在后面计算出24点// 那么回溯,找下一个数number[i] = a;number[j] = b;}}return false;
}int AtoI(const string& c)
{if (c == "A")return 1;if (c == "J")return 11;if (c == "Q")return 12;if (c == "K")return 13;if (c == "10")return 10;return c[0] - '0';
}
int main()
{int i;string temp[4];while (cin >> temp[0] >> temp[1] >> temp[2] >> temp[3]){for (i = 0; i < CardsSum; ++i)number[i] = AtoI(temp[i]);if (PointsGame(CardsSum)){cout << "Yes" << endl;}else{cout << "No" << endl;}}
}

C++版本二

题库:朴素

#include<iostream>
#include<string>
using namespace std;const int CardsSum = 4;
const int ResultValue = 24;
int a[CardsSum];int check(int A,int B,int C,int D){if(A+B+C+D==24)return 1;if(A+B+C-D==24)return 1;if(A+B+C*D==24)return 1;if(A+(B+C)*D==24)return 1;if((A+B+C)*D==24)return 1;if(A+B+C/D==24&&1.0*C/D==C/D)return 1;if(A+(B+C)/D==24&&1.0*(B+C)/D==(B+C)/D)return 1;if((A+B+C)/D==24&&1.0*(A+B+C)/D==(A+B+C)/D)return 1;if(A+B-C+D==24)return 1;if(A+B-C-D==24)return 1;if(A+B-C*D==24)return 1;if(A+(B-C)*D==24)return 1;if((A+B-C)*D==24)return 1;if(A+B-C/D==24&&1.0*C/D==C/D)return 1;if(A+(B-C)/D==24&&1.0*(B-C)/D==(B-C)/D)return 1;if((A+B-C)/D==24&&1.0*(A+B-C)/D==(A+B-C)/D)return 1;if(A+B*C+D==24)return 1;if((A+B)*C+D==24)return 1;if(A+B*(C+D)==24)return 1;if((A+B)*(C+D)==24)return 1;if(A+B*C-D==24)return 1;if((A+B)*C-D==24)return 1;if(A+B*(C-D)==24)return 1;if((A+B)*(C-D)==24)return 1;if(A+B*C*D==24)return 1;if((A+B)*C*D==24)return 1;if(A+B*C/D==24&&1.0*B*C/D==B*C/D)return 1;if((A+B)*C/D==24&&1.0*(A+B)*C/D==(A+B)*C/D)return 1;if((A+B*C)/D==24&&1.0*(A+B*C)/D==(A+B*C)/D)return 1;if(A+B/C+D==24&&1.0*B/C==B/C)return 1;if((A+B)/C+D==24&&1.0*(A+B)/C==(A+B)/C)return 1;if(A+B/(C+D)==24&&1.0*B/(C+D)==B/(C+D))return 1;if((A+B)/(C+D)==24&&1.0*(A+B)/(C+D)==(A+B)/(C+D))return 1;if(A+B/C-D==24&&1.0*B/C==B/C)return 1;if((A+B)/C-D==24&&1.0*(A+B)/C==(A+B)/C)return 1;if(C-D!=0&&A+B/(C-D)==24&&1.0*B/(C-D)==B/(C-D))return 1;if(C-D!=0&&(A+B)/(C-D)==24&&1.0*(A+B)/(C-D)==(A+B)/(C-D))return 1;if(A+B/C*D==24&&1.0*B/C*D==B/C*D)return 1;if((A+B)/C*D==24&&1.0*(A+B)/C*D==(A+B)/C*D)return 1;if(A+B/C/D==24&&1.0*B/C/D==B/C/D)return 1;if((A+B)/C/D==24&&1.0*(A+B)/C/D==(A+B)/C/D)return 1;if(A-B+C+D==24)return 1;if(A-B+C-D==24)return 1;if(A-B+C*D==24)return 1;if(A-(B+C)*D==24)return 1;if((A-B+C)*D==24)return 1;if(A-B+C/D==24&&1.0*C/D==C/D)return 1;if(A-(B+C)/D==24&&1.0*(B+C)/D==(B+C)/D)return 1;if((A-B+C)/D==24&&1.0*(A-B+C)/D==(A-B+C)/D)return 1;if(A-B-C+D==24)return 1;if(A-B-C-D==24)return 1;if(A-B-C*D==24)return 1;if(A-(B-C)*D==24)return 1;if((A-B-C)*D==24)return 1;if(A-B-C/D==24&&1.0*C/D==C/D)return 1;if(A-(B-C)/D==24&&1.0*(B-C)/D==(B-C)/D)return 1;if((A-B-C)/D==24&&1.0*(A-B-C)/D==(A-B-C)/D)return 1;if(A-B*C+D==24)return 1;if((A-B)*C+D==24)return 1;if(A-B*(C+D)==24)return 1;if((A-B)*(C+D)==24)return 1;if(A-B*C-D==24)return 1;if((A-B)*C-D==24)return 1;if(A-B*(C-D)==24)return 1;if((A-B)*(C-D)==24)return 1;if(A-B*C*D==24)return 1;if((A-B)*C*D==24)return 1;if(A-B*C/D==24&&1.0*C/D==C/D)return 1;if((A-B)*C/D==24&&1.0*(A-B)*C/D==(A-B)*C/D)return 1;if((A-B*C)/D==24&&1.0*(A-B*C)/D==(A-B*C)/D)return 1;if(A-B/C+D==24&&1.0*B/C==B/C)return 1;if((A-B)/C+D==24&&1.0*(A-B)/C==(A-B)/C)return 1;if(A-B/(C+D)==24&&1.0*B/(C+D)==B/(C+D))return 1;if((A-B)/(C+D)==24&&1.0*(A-B)/(C+D)==(A-B)/(C+D))return 1;if(A-B/C-D==24&&1.0*B/C==B/C)return 1;if((A-B)/C-D==24&&1.0*(A-B)/C==(A-B)/C)return 1;if(C-D!=0&&A-B/(C-D)==24&&1.0*B/(C-D)==B/(C-D))return 1;if(C-D!=0&&(A-B)/(C-D)==24&&1.0*(A-B)/(C-D)==(A-B)/(C-D))return 1;if(A-B/C*D==24&&1.0*B/C*D==B/C*D)return 1;if((A-B)/C*D==24&&1.0*(A-B)/C*D==(A-B)/C*D)return 1;if(A-B/C/D==24&&1.0*B/C/D==B/C/D)return 1;if((A-B)/C*D==24&&1.0*(A-B)/C*D==(A-B)/C*D)return 1;if(A*B+C+D==24)return 1;if(A*(B+C)+D==24)return 1;if(A*(B+C+D)==24)return 1;if(A*B+C-D==24)return 1;if(A*(B+C)-D==24)return 1;if(A*(B+C-D)==24)return 1;if(A*B+C*D==24)return 1;if(A*(B+C)*D==24)return 1;if(A*(B+C*D)==24)return 1;if((A*B+C)*D==24)return 1;if(A*B+C/D==24&&1.0*C/D==C/D)return 1;if(A*(B+C)/D==24&&1.0*A*(B+C)/D==A*(B+C)/D)return 1;if(A*(B+C/D)==24&&1.0*C/D==C/D)return 1;if((A*B+C)/D==24&&1.0*(A*B+C)/D==(A*B+C)/D)return 1;if(A*B-C+D==24)return 1;if(A*(B-C)+D==24)return 1;if(A*(B-C+D)==24)return 1;if(A*B-C-D==24)return 1;if(A*(B-C)-D==24)return 1;if(A*(B-C-D)==24)return 1;if(A*B-C*D==24)return 1;if(A*(B-C)*D==24)return 1;if(A*(B-C*D)==24)return 1;if((A*B-C)*D==24)return 1;if(A*B-C/D==24&&1.0*C/D==C/D)return 1;if(A*(B-C)/D==24&&1.0*A*(B-C)/D==A*(B-C)/D)return 1;if(A*(B-C/D)==24&&1.0*C/D==C/D)return 1; if((A*B-C)/D==24&&1.0*(A*B-C)/D==(A*B-C)/D)return 1;if(A*B*C+D==24)return 1;if(A*B*(C+D)==24)return 1;if(A*B*C-D==24)return 1;if(A*B*(C-D)==24)return 1;if(A*B*C*D==24)return 1;if(A*B*C/D==24&&1.0*A*B*C/D==A*B*C/D)return 1;if(A*B/C+D==24&&1.0*A*B/C==A*B/C)return 1;if(A*B/(C+D)==24&&1.0*A*B/(C+D)==A*B/(C+D))return 1;if(A*B/C-D==24&&1.0*A*B/C==A*B/C)return 1;if(C-D!=0&&A*B/(C-D)==24&&1.0*A*B/(C-D)==A*B/(C-D))return 1;if(A*B/C*D==24&&1.0*A*B/C*D==A*B/C*D)return 1;if(A*B/C/D==24&&1.0*A*B/C/D==A*B/C/D)return 1;if(A/B+C+D==24&&1.0*A/B==A/B)return 1;if(A/(B+C)+D==24&&1.0*A/(B+C)==A/(B+C))return 1;if(A/(B+C+D)==24&&1.0*A/(B+C+D)==A/(B+C+D))return 1;if(A/B+C-D==24&&1.0*A/B==A/B)return 1;if(A/(B+C)-D==24&&1.0*A/(B+C)==A/(B+C))return 1;if(B+C-D!=0&&A/(B+C-D)==24&&1.0*A/(B+C-D)==A/(B+C-D))return 1;if(A/B+C*D==24&&1.0*A/B==A/B)return 1;if(A/(B+C)*D==24&&1.0*A/(B+C)*D==A/(B+C)*D)return 1;if(A/(B+C*D)==24&&1.0*A/(B+C*D)==A/(B+C*D))return 1;if(A/B+C/D==24&&1.0*A/B==A/B&&1.0*C/D==C/D)return 1;if(A/(B+C)/D==24&&1.0*A/(B+C)/D==A/(B+C)/D)return 1;if(A/(B+C/D)==24&&1.0*C/D==C/D&&1.0*A/(B+C/D)==A/(B+C/D))return 1;if((A/B+C)/D==24&&1.0*A/B==A/B&&1.0*(A/B+C)/D==(A/B+C)/D)return 1;if(A/B-C+D==24&&1.0*A/B==A/B)return 1;if(B-C!=0&&A/(B-C)+D==24&&1.0*A/(B-C)==A/(B-C))return 1;if(B-C+D!=0&&A/(B-C+D)==24&&1.0*A/(B-C+D)==A/(B-C+D))return 1;if(A/B-C-D==24&&1.0*A/B==A/B)return 1;if(B-C!=0&&A/(B-C)-D==24&&1.0*A/(B-C)==A/(B-C))return 1;if(B-C-D!=0&&A/(B-C-D)==24&&1.0*A/(B-C-D)==A/(B-C-D))return 1;if(A/B-C*D==24&&1.0*A/B==A/B)return 1;if(B-C!=0&&A/(B-C)*D==24&&1.0*A/(B-C)*D==A/(B-C)*D)return 1;if(B-C*D!=0&&A/(B-C*D)==24&&1.0*A/(B-C*D)==A/(B-C*D))return 1;if(A/B-C/D==24&&1.0*A/B==A/B&&1.0*C/D==C/D)return 1;if(B-C!=0&&A/(B-C)/D==24&&1.0*A/(B-C)/D==A/(B-C)/D)return 1;if(B-C/D!=0&&A/(B-C/D)==24&&1.0*C/D==C/D&&1.0*A/(B-C/D)==A/(B-C/D))return 1;if((A/B-C)/D==24&&1.0*A/B==A/B&&1.0*(A/B-C)/D==(A/B-C)/D)return 1;if(A/B*C+D==24&&1.0*A/B*C==A/B*C)return 1;if(A/(B+C)*D==24&&1.0*A/(B+C)*D==A/(B+C)*D)return 1;if(A/(B+C*D)==24&&1.0*A/(B+C*D)==A/(B+C*D))return 1;if(A/B*C-D==24&&1.0*A/B*C==A/B*C)return 1;if(A/B*(C-D)==24&&1.0*A/B*(C-D)==A/B*(C-D))return 1;if(B*C-D!=0&&A/(B*C-D)==24&&1.0*A/(B*C-D)==A/(B*C-D))return 1;//printf("%d %d %d %d\n",A,B,C,D);if(A/B*C*D==24&&1.0*A/B*C*D==A/B*C*D)return 1;if(A/B*C/D==24&&1.0*A/B*C/D==A/B*C/D)return 1;if(A/B/C+D==24&&1.0*A/B/C==A/B/C)return 1;if(A/B/(C+D)==24&&1.0*A/B/(C+D)==A/B/(C+D))return 1;if(A/B/C-D==24&&1.0*A/B/C==A/B/C)return 1;if(C-D!=0&&A/B/(C-D)==24&&1.0*A/B/(C-D)==A/B/(C-D))return 1;if(A/B/C*D==24&&1.0*A/B/C*D==A/B/C*D)return 1;if(A/B/C/D==24&&1.0*A/B/C/D==A/B/C/D)return 1;return 0;
}int AtoI(const string& c)
{if (c == "A")return 1;if (c == "J")return 11;if (c == "Q")return 12;if (c == "K")return 13;if (c == "10")return 10;return c[0] - '0';
}
int main()
{int i;string temp[4];while (cin >> temp[0] >> temp[1] >> temp[2] >> temp[3]){for (i = 0; i < CardsSum; ++i)a[i+1] = AtoI(temp[i]);int ans=0,cnt=0;ans|=check(a[1],a[2],a[3],a[4]);ans|=check(a[1],a[2],a[4],a[3]);ans|=check(a[1],a[3],a[2],a[4]);ans|=check(a[1],a[3],a[4],a[2]);ans|=check(a[1],a[4],a[2],a[3]);ans|=check(a[1],a[4],a[3],a[2]);ans|=check(a[2],a[1],a[3],a[4]);ans|=check(a[2],a[1],a[4],a[3]);ans|=check(a[2],a[3],a[1],a[4]);ans|=check(a[2],a[3],a[4],a[1]);ans|=check(a[2],a[4],a[1],a[3]);ans|=check(a[2],a[4],a[3],a[1]);ans|=check(a[3],a[1],a[2],a[4]);ans|=check(a[3],a[1],a[4],a[2]);ans|=check(a[3],a[2],a[1],a[4]);ans|=check(a[3],a[2],a[4],a[1]);ans|=check(a[3],a[4],a[1],a[2]);ans|=check(a[3],a[4],a[2],a[1]);ans|=check(a[4],a[1],a[2],a[3]);ans|=check(a[4],a[1],a[3],a[2]);ans|=check(a[4],a[2],a[1],a[3]);ans|=check(a[4],a[2],a[3],a[1]);ans|=check(a[4],a[3],a[1],a[2]);ans|=check(a[4],a[3],a[2],a[1]);printf("%s\n",(ans?"Yes":"No"));}
}

C语言版本一

#include<stdio.h>int check(int A,int B,int C,int D){if(A+B+C+D==24)return 1;if(A+B+C-D==24)return 1;if(A+B+C*D==24)return 1;if(A+(B+C)*D==24)return 1;if((A+B+C)*D==24)return 1;if(A+B+C/D==24&&1.0*C/D==C/D)return 1;if(A+(B+C)/D==24&&1.0*(B+C)/D==(B+C)/D)return 1;if((A+B+C)/D==24&&1.0*(A+B+C)/D==(A+B+C)/D)return 1;if(A+B-C+D==24)return 1;if(A+B-C-D==24)return 1;if(A+B-C*D==24)return 1;if(A+(B-C)*D==24)return 1;if((A+B-C)*D==24)return 1;if(A+B-C/D==24&&1.0*C/D==C/D)return 1;if(A+(B-C)/D==24&&1.0*(B-C)/D==(B-C)/D)return 1;if((A+B-C)/D==24&&1.0*(A+B-C)/D==(A+B-C)/D)return 1;if(A+B*C+D==24)return 1;if((A+B)*C+D==24)return 1;if(A+B*(C+D)==24)return 1;if((A+B)*(C+D)==24)return 1;if(A+B*C-D==24)return 1;if((A+B)*C-D==24)return 1;if(A+B*(C-D)==24)return 1;if((A+B)*(C-D)==24)return 1;if(A+B*C*D==24)return 1;if((A+B)*C*D==24)return 1;if(A+B*C/D==24&&1.0*B*C/D==B*C/D)return 1;if((A+B)*C/D==24&&1.0*(A+B)*C/D==(A+B)*C/D)return 1;if((A+B*C)/D==24&&1.0*(A+B*C)/D==(A+B*C)/D)return 1;if(A+B/C+D==24&&1.0*B/C==B/C)return 1;if((A+B)/C+D==24&&1.0*(A+B)/C==(A+B)/C)return 1;if(A+B/(C+D)==24&&1.0*B/(C+D)==B/(C+D))return 1;if((A+B)/(C+D)==24&&1.0*(A+B)/(C+D)==(A+B)/(C+D))return 1;if(A+B/C-D==24&&1.0*B/C==B/C)return 1;if((A+B)/C-D==24&&1.0*(A+B)/C==(A+B)/C)return 1;if(C-D!=0&&A+B/(C-D)==24&&1.0*B/(C-D)==B/(C-D))return 1;if(C-D!=0&&(A+B)/(C-D)==24&&1.0*(A+B)/(C-D)==(A+B)/(C-D))return 1;if(A+B/C*D==24&&1.0*B/C*D==B/C*D)return 1;if((A+B)/C*D==24&&1.0*(A+B)/C*D==(A+B)/C*D)return 1;if(A+B/C/D==24&&1.0*B/C/D==B/C/D)return 1;if((A+B)/C/D==24&&1.0*(A+B)/C/D==(A+B)/C/D)return 1;if(A-B+C+D==24)return 1;if(A-B+C-D==24)return 1;if(A-B+C*D==24)return 1;if(A-(B+C)*D==24)return 1;if((A-B+C)*D==24)return 1;if(A-B+C/D==24&&1.0*C/D==C/D)return 1;if(A-(B+C)/D==24&&1.0*(B+C)/D==(B+C)/D)return 1;if((A-B+C)/D==24&&1.0*(A-B+C)/D==(A-B+C)/D)return 1;if(A-B-C+D==24)return 1;if(A-B-C-D==24)return 1;if(A-B-C*D==24)return 1;if(A-(B-C)*D==24)return 1;if((A-B-C)*D==24)return 1;if(A-B-C/D==24&&1.0*C/D==C/D)return 1;if(A-(B-C)/D==24&&1.0*(B-C)/D==(B-C)/D)return 1;if((A-B-C)/D==24&&1.0*(A-B-C)/D==(A-B-C)/D)return 1;if(A-B*C+D==24)return 1;if((A-B)*C+D==24)return 1;if(A-B*(C+D)==24)return 1;if((A-B)*(C+D)==24)return 1;if(A-B*C-D==24)return 1;if((A-B)*C-D==24)return 1;if(A-B*(C-D)==24)return 1;if((A-B)*(C-D)==24)return 1;if(A-B*C*D==24)return 1;if((A-B)*C*D==24)return 1;if(A-B*C/D==24&&1.0*C/D==C/D)return 1;if((A-B)*C/D==24&&1.0*(A-B)*C/D==(A-B)*C/D)return 1;if((A-B*C)/D==24&&1.0*(A-B*C)/D==(A-B*C)/D)return 1;if(A-B/C+D==24&&1.0*B/C==B/C)return 1;if((A-B)/C+D==24&&1.0*(A-B)/C==(A-B)/C)return 1;if(A-B/(C+D)==24&&1.0*B/(C+D)==B/(C+D))return 1;if((A-B)/(C+D)==24&&1.0*(A-B)/(C+D)==(A-B)/(C+D))return 1;if(A-B/C-D==24&&1.0*B/C==B/C)return 1;if((A-B)/C-D==24&&1.0*(A-B)/C==(A-B)/C)return 1;if(C-D!=0&&A-B/(C-D)==24&&1.0*B/(C-D)==B/(C-D))return 1;if(C-D!=0&&(A-B)/(C-D)==24&&1.0*(A-B)/(C-D)==(A-B)/(C-D))return 1;if(A-B/C*D==24&&1.0*B/C*D==B/C*D)return 1;if((A-B)/C*D==24&&1.0*(A-B)/C*D==(A-B)/C*D)return 1;if(A-B/C/D==24&&1.0*B/C/D==B/C/D)return 1;if((A-B)/C*D==24&&1.0*(A-B)/C*D==(A-B)/C*D)return 1;if(A*B+C+D==24)return 1;if(A*(B+C)+D==24)return 1;if(A*(B+C+D)==24)return 1;if(A*B+C-D==24)return 1;if(A*(B+C)-D==24)return 1;if(A*(B+C-D)==24)return 1;if(A*B+C*D==24)return 1;if(A*(B+C)*D==24)return 1;if(A*(B+C*D)==24)return 1;if((A*B+C)*D==24)return 1;if(A*B+C/D==24&&1.0*C/D==C/D)return 1;if(A*(B+C)/D==24&&1.0*A*(B+C)/D==A*(B+C)/D)return 1;if(A*(B+C/D)==24&&1.0*C/D==C/D)return 1;if((A*B+C)/D==24&&1.0*(A*B+C)/D==(A*B+C)/D)return 1;if(A*B-C+D==24)return 1;if(A*(B-C)+D==24)return 1;if(A*(B-C+D)==24)return 1;if(A*B-C-D==24)return 1;if(A*(B-C)-D==24)return 1;if(A*(B-C-D)==24)return 1;if(A*B-C*D==24)return 1;if(A*(B-C)*D==24)return 1;if(A*(B-C*D)==24)return 1;if((A*B-C)*D==24)return 1;if(A*B-C/D==24&&1.0*C/D==C/D)return 1;if(A*(B-C)/D==24&&1.0*A*(B-C)/D==A*(B-C)/D)return 1;if(A*(B-C/D)==24&&1.0*C/D==C/D)return 1; if((A*B-C)/D==24&&1.0*(A*B-C)/D==(A*B-C)/D)return 1;if(A*B*C+D==24)return 1;if(A*B*(C+D)==24)return 1;if(A*B*C-D==24)return 1;if(A*B*(C-D)==24)return 1;if(A*B*C*D==24)return 1;if(A*B*C/D==24&&1.0*A*B*C/D==A*B*C/D)return 1;if(A*B/C+D==24&&1.0*A*B/C==A*B/C)return 1;if(A*B/(C+D)==24&&1.0*A*B/(C+D)==A*B/(C+D))return 1;if(A*B/C-D==24&&1.0*A*B/C==A*B/C)return 1;if(C-D!=0&&A*B/(C-D)==24&&1.0*A*B/(C-D)==A*B/(C-D))return 1;if(A*B/C*D==24&&1.0*A*B/C*D==A*B/C*D)return 1;if(A*B/C/D==24&&1.0*A*B/C/D==A*B/C/D)return 1;if(A/B+C+D==24&&1.0*A/B==A/B)return 1;if(A/(B+C)+D==24&&1.0*A/(B+C)==A/(B+C))return 1;if(A/(B+C+D)==24&&1.0*A/(B+C+D)==A/(B+C+D))return 1;if(A/B+C-D==24&&1.0*A/B==A/B)return 1;if(A/(B+C)-D==24&&1.0*A/(B+C)==A/(B+C))return 1;if(B+C-D!=0&&A/(B+C-D)==24&&1.0*A/(B+C-D)==A/(B+C-D))return 1;if(A/B+C*D==24&&1.0*A/B==A/B)return 1;if(A/(B+C)*D==24&&1.0*A/(B+C)*D==A/(B+C)*D)return 1;if(A/(B+C*D)==24&&1.0*A/(B+C*D)==A/(B+C*D))return 1;if(A/B+C/D==24&&1.0*A/B==A/B&&1.0*C/D==C/D)return 1;if(A/(B+C)/D==24&&1.0*A/(B+C)/D==A/(B+C)/D)return 1;if(A/(B+C/D)==24&&1.0*C/D==C/D&&1.0*A/(B+C/D)==A/(B+C/D))return 1;if((A/B+C)/D==24&&1.0*A/B==A/B&&1.0*(A/B+C)/D==(A/B+C)/D)return 1;if(A/B-C+D==24&&1.0*A/B==A/B)return 1;if(B-C!=0&&A/(B-C)+D==24&&1.0*A/(B-C)==A/(B-C))return 1;if(B-C+D!=0&&A/(B-C+D)==24&&1.0*A/(B-C+D)==A/(B-C+D))return 1;if(A/B-C-D==24&&1.0*A/B==A/B)return 1;if(B-C!=0&&A/(B-C)-D==24&&1.0*A/(B-C)==A/(B-C))return 1;if(B-C-D!=0&&A/(B-C-D)==24&&1.0*A/(B-C-D)==A/(B-C-D))return 1;if(A/B-C*D==24&&1.0*A/B==A/B)return 1;if(B-C!=0&&A/(B-C)*D==24&&1.0*A/(B-C)*D==A/(B-C)*D)return 1;if(B-C*D!=0&&A/(B-C*D)==24&&1.0*A/(B-C*D)==A/(B-C*D))return 1;if(A/B-C/D==24&&1.0*A/B==A/B&&1.0*C/D==C/D)return 1;if(B-C!=0&&A/(B-C)/D==24&&1.0*A/(B-C)/D==A/(B-C)/D)return 1;if(B-C/D!=0&&A/(B-C/D)==24&&1.0*C/D==C/D&&1.0*A/(B-C/D)==A/(B-C/D))return 1;if((A/B-C)/D==24&&1.0*A/B==A/B&&1.0*(A/B-C)/D==(A/B-C)/D)return 1;if(A/B*C+D==24&&1.0*A/B*C==A/B*C)return 1;if(A/(B+C)*D==24&&1.0*A/(B+C)*D==A/(B+C)*D)return 1;if(A/(B+C*D)==24&&1.0*A/(B+C*D)==A/(B+C*D))return 1;if(A/B*C-D==24&&1.0*A/B*C==A/B*C)return 1;if(A/B*(C-D)==24&&1.0*A/B*(C-D)==A/B*(C-D))return 1;if(B*C-D!=0&&A/(B*C-D)==24&&1.0*A/(B*C-D)==A/(B*C-D))return 1;//printf("%d %d %d %d\n",A,B,C,D);if(A/B*C*D==24&&1.0*A/B*C*D==A/B*C*D)return 1;if(A/B*C/D==24&&1.0*A/B*C/D==A/B*C/D)return 1;if(A/B/C+D==24&&1.0*A/B/C==A/B/C)return 1;if(A/B/(C+D)==24&&1.0*A/B/(C+D)==A/B/(C+D))return 1;if(A/B/C-D==24&&1.0*A/B/C==A/B/C)return 1;if(C-D!=0&&A/B/(C-D)==24&&1.0*A/B/(C-D)==A/B/(C-D))return 1;if(A/B/C*D==24&&1.0*A/B/C*D==A/B/C*D)return 1;if(A/B/C/D==24&&1.0*A/B/C/D==A/B/C/D)return 1;return 0;
}int main()
{char str[5][3];while(~scanf("%s%s%s%s",str[1],str[2],str[3],str[4])){int a[5];for(int i=1;i<=4;i++) {if(str[i][0]=='A')a[i]=1;else if(str[i][0]=='1'&&str[i][1]=='0')a[i]=10;else if(str[i][0]=='J')a[i]=11;else if(str[i][0]=='Q')a[i]=12;else if(str[i][0]=='K')a[i]=13;elsea[i]=str[i][0]-'0';}//printf("%d %d %d %d\n",a[1],a[2],a[3],a[4]);int ans=0,cnt=0;ans|=check(a[1],a[2],a[3],a[4]);ans|=check(a[1],a[2],a[4],a[3]);ans|=check(a[1],a[3],a[2],a[4]);ans|=check(a[1],a[3],a[4],a[2]);ans|=check(a[1],a[4],a[2],a[3]);ans|=check(a[1],a[4],a[3],a[2]);ans|=check(a[2],a[1],a[3],a[4]);ans|=check(a[2],a[1],a[4],a[3]);ans|=check(a[2],a[3],a[1],a[4]);ans|=check(a[2],a[3],a[4],a[1]);ans|=check(a[2],a[4],a[1],a[3]);ans|=check(a[2],a[4],a[3],a[1]);ans|=check(a[3],a[1],a[2],a[4]);ans|=check(a[3],a[1],a[4],a[2]);ans|=check(a[3],a[2],a[1],a[4]);ans|=check(a[3],a[2],a[4],a[1]);ans|=check(a[3],a[4],a[1],a[2]);ans|=check(a[3],a[4],a[2],a[1]);ans|=check(a[4],a[1],a[2],a[3]);ans|=check(a[4],a[1],a[3],a[2]);ans|=check(a[4],a[2],a[1],a[3]);ans|=check(a[4],a[2],a[3],a[1]);ans|=check(a[4],a[3],a[1],a[2]);ans|=check(a[4],a[3],a[2],a[1]);printf("%s\n",(ans?"Yes":"No"));}return 0;
}

HDU 1427 速算24点相关推荐

  1. HDU 1427 速算24点(dfs)

    Description 速算24点相信绝大多数人都玩过.就是随机给你四张牌,包括A(1),2,3,4,5,6,7,8,9,10,J(11),Q(12),K(13).要求只用'+','-','*','/ ...

  2. HDU 1427 速算24点 (深搜)

    题目链接 Problem Description 速算24点相信绝大多数人都玩过.就是随机给你四张牌,包括A(1),2,3,4,5,6,7,8,9,10,J(11),Q(12),K(13).要求只用' ...

  3. HDU - 1427 速算24点(dfs)

    题目链接:点击查看 题目大意:模拟24点游戏,判断是否有解,规则如下:给出四张扑克牌,分别对应着1~13中的四个数,若这四个数字可以通过加减乘除四则运算使结果最后为24,则有解,反之无解 题目分析:因 ...

  4. HDU 1427 速算24点(DFS) *

    原题链接:Here! 思路:这是get的别人的代码,写的很棒,用next_permutation()取代了括号的作用,精髓,经典 代码: /*Note:代码写的非常(๑•̀ㅂ•́)و✧用next_pe ...

  5. 速算C语言程序设计,C语言程序设计课程设计-速算24.doc

    该设计论文已经通过各大高校老师审核认可并通过答辩,准确完整无误.欢迎大家下载学习交流.如有疑问可随时联系店主,竭诚为您解答!! 应用技术学院 课 程 设 计 报 告 课程名称 C语言课程设计 课题名称 ...

  6. HDU1427 速算24点【DFS】

    速算24点 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Subm ...

  7. 24速算c语言实训报告ppt,C语言课程设计(速算24).doc

    <> 课程设计报告 速算24专业:计算机科学与技术班级:姓名:指导教师:成绩: 计算机与信息工程系 二0一四年二月二十日 目录 1.该系统的功能描述.................... ...

  8. Python写个小游戏:速算24点(上)

    文章目录 前言 速算24点 1. 玩法简介 2. 游戏流程 3. 搭建游戏界面 1). 基本界面 2). 洗牌.发牌 洗牌 发牌 3). 计时器 4). 玩家输入公式(答案) StringVar类 按 ...

  9. c语言速算24课程设计,C语言速算24数据结构课程设计.docx

    课程设计 ( 论文 ) 题 目 名 称 速算 24 课 程 名 称 数据结构课程设计 学 生 姓 名 王浩明 学 号 0941301253 系 .专 业 信息工程系.信息类 指 导 教 师 谢兵 20 ...

最新文章

  1. java手机界面太小_手机端页面在项目中遇到的一些问题及解决办法
  2. mysql 异常处理实例
  3. ajax使用html()后样式无效,jquery.ajax使用字符串拼接后内联css样式失效
  4. ios图片放大之后如何不模糊_ios uiimageview的长宽放大3倍后 图片变模糊的问题
  5. java hibernate 多对多_hibernate 多对多映射配置详解
  6. java知识总结-19
  7. 最新版网站推广完全手册
  8. WIN10 企业版安装edge浏览器方法
  9. Solr Facet
  10. android背光,Android背光亮度调节
  11. NodeJS-框架express-Koa-Hapi的区别
  12. cesium实现立体墙(垂直、水平)渐变泛光效果
  13. mysql经典问题之group by和max函数
  14. word文档被覆盖了怎么恢复原状
  15. 使用pyhton采用多线程方式ping IP
  16. 字符串之正则表达式匹配
  17. Django基础(33): 中间件(middleware)的工作原理和应用场景举例
  18. Verilog基本语法——模块
  19. git仓库的基本使用_码云中国
  20. 神经网络算法应用场景,视觉算法具体是做什么

热门文章

  1. linux中怎样进入桌面目录,linux – 如何获得给定用户“桌面路径”
  2. mysql还原数据库后日期显示3000_mysql 直接从date 文件夹备份表,还原数据库之后提示 table doesn`t exist的原因和解决方法...
  3. python paramiko并发_使用Python paramiko模块利用多线程实现ssh并发执行操作
  4. python画网络关系 节点和边存在文件里_python复杂网络分析库NetworkX
  5. groupby多个字段性能_MySQL今天我们说下分组(group by)
  6. 千里眼摄像头支持对象存储吗_【手机技术】专业相机应用Halide全面支持苹果iPhone SE 2人像模式...
  7. k8s如何设置虚拟内存_绝地求生内存优化设置教程(建议收藏)
  8. android listview 列加id,Android实战开发之ListView同一个item显示2列的实现方法
  9. 使用DOM4J读取和维护XML数据
  10. linux内核全局变量重定位,关于可重定位文件中全局变量的一个重定位疑惑,借各位牛刀一用^...