文章结束给大家来个程序员笑话:[M]
标题描述:
描述: 两人用一副扑克(王牌除去)玩24点,规则是这样的:两人各出2张牌,谁先算出来谁赢,赢家收回已算过的4张牌,最后看谁手里的牌多。四张牌分别用4个扑克牌面字符表示。A,1,2,3,4,5,6,7,8,9,10,J,Q,K 分别代表数字1,2,3,4,5,6,7,8,9,10,11,12,13。其中每张牌只能应用一次;任意应用 +, –, *, /, ( ) ,构造出一个表达式,使得最终结果为24。
Input: 输入的第一行正整数N代表须要求解测试集合数目。接下来的N行代表每个测试 集,分别用四个字符代表四张牌面。 Output: 对于每个测试集,如果存在能算出24点的计划,即输出表达式。如果存在多个,只须要输出一个即可。而对于不能算出24点的测试集,输出字符串“NULL”。 Sample Input: 3 A 4 5 6 A Q 2 A 7 7 7 7 Sample Output: 6/((5/4)-A) (A/A)*2*Q NULL思绪:将4元运算,一直的转换为2元运算,放在数组的首位,当递归深度为3的时候判断。网上24点游戏的算法很多,鉴戒了一下前csdn版主的思绪写的代码。
每日一道理 爱心是一片照射在冬日的阳光,使贫病交迫的人感到人间的温暖;爱心是一泓出现在沙漠里的泉水,使濒临绝境的人重新看到生活的希望;爱心是一首飘荡在夜空的歌谣,使孤苦无依的人获得心灵的慰藉。
#include#include #include #include using namespace std;const double wucha=1E-6; //浮点除法有精度损失 double num[4];string expression[4]; //表达式 bool flag;void game24(int n){ if(n==1){ if(fabs(num[0]-24)<=wucha){ flag=1; for(int i=1;i!=expression[0].size()-1;i++)//输出的时候最外层的一个括号去掉 cout< >n; while(n--) { cin>>expression[0]>>expression[1]>>expression[2]>>expression[3]; for(int i=0;i<4;i++){ if(expression[i]=="A")num[i]=1; else if(expression[i]=="J")num[i]=11; else if(expression[i]=="Q")num[i]=12; else if(expression[i]=="K")num[i]=13; else if(expression[i]=="10")num[i]=10; else { char tmp=expression[i][0]; num[i]=tmp-'0'; } } flag=0; game24(4); if(!flag)cout<<"NULL"<
文章结束给大家分享下程序员的一些笑话语录: 面试官:熟悉哪种语言
应聘者:JAVA 面试官:知道什么叫类么 应聘者:我这人实在,工作努力,不知道什么叫累 面试官:知道什么是包? 应聘者:我这人实在 平常不带包 也不用公司准备了 面试官:知道什么是接口吗? 应聘者:我这个人工作认真。从来不找借口偷懒 面试官:知道什么是继承么 应聘者:我是孤儿没什么可以继承的 面试官:知道什么叫对象么? 应聘者:知道,不过我工作努力,上进心强,暂时还没有打算找对象。 面试官:知道多态么? 应聘者:知道,我很保守的。我认为让心爱的女人为了自已一时的快乐去堕胎是不道德的行为!请问这和C#有什么关系??--------------------------------- 原创文章 By
编程和输出---------------------------------