一、常见游戏规则:
从扑克中每次取出4张牌。使用加减乘除,第一个能得出24者为赢。(其中,J代表11,Q代表12,K代表13,A代表1),按照要求编程解决24点游戏。
基本要求: 随机生成4个代表扑克牌牌面的数字字母,程序自动列出所有可能算出24的表达式,用擅长的语言(C/C++/Java或其他均可)实现程序解决问题。
1.程序风格良好(使用自定义注释模板)
2.列出表达式无重复。
二、具体代码:
#include<iostream>
#include<stdlib.h>
#include<math.h>
#include<time.h>
using namespace std;
int m; //用来标志能否运算出24
double arithmetic(int flag,float m,float n) //进行四则运算
{
switch(flag) //判断运算符号,返回相对应的运算结果
{
case 0:
return (m+n);
case 1:
return (m-n);
case 2:
return (m*n);
case 3:
if (n==0)
return 10000; //除数为0,则返回10000,使之不能运算出24
else
return (m/n);
case 4:
return (n-m);
case 5:
if (m==0)
return 10000; //除数为0,则返回10000,使之不能运算出24
else
return (n/m);
default:
return 0;
}
}
void show(int type,int i,int j,int k,float a,float b,float c,float d)//利用参数type选择输出形式,利用参数i,j,k确定输出的运算符号
{
char sign[6]; //定义运算符号数组
sign[0]='+';
sign[1]='-';
sign[2]='*';
sign[3]='/';
sign[4]='-'; //减法不符合交换律
sign[5]='/';