24点游戏C实现

1. 本次的24点游戏由random函数随机生成4个数,再定义一个一个函数这个函数实现的功能是将这四个数作为参数传入,进行加减乘除运算得到结果为24的打印出来,并且没有重复打印的情况,如何解决没有重复的问题是关键,根据括号的位置不同分为6种,他们分别是(ab)(cd),(abc)d,a(bc)d,ab*(cd),a(bcd),(ab)cd,其中代表加减乘除中的一种。24点游戏是经典的纸牌益智游戏。常见游戏规则:
从扑克中每次取出4张牌。使用加减乘除,第一个能得出24者为赢。(其中,J代表11,Q代表12,K代表13,A代表1),按照要求编程解决24点游戏。
基本要求: 随机生成4个代表扑克牌牌面的数字字母,程序自动列出所有可能算出24的表达式,用擅长的语言(C/C++/Java或其他均可)实现程序解决问题。下面是程序源代码:`#include
#include <stdlib.h>
using namespace std;
int flag=1;
int main() {
int Calculate ( float x, float y, float z, float w);//函数声明
while(flag){
float a,b,c,d;
int x;
cout<<“随机生成4个数据”<<endl;
a=rand()%13+1;
cout<<" 第一个数:"<<a<<endl;
b=rand()%13+1;
cout<<" 第二个数:"<<b<<endl;
c=rand()%13+1;
cout<<" 第三个数:"<<c<<endl;
d=rand()%13+1;
cout<<" 第四个数:"<<d<<endl;
cout<<“输出所有算法如下:”<<endl;
Calculate (a,b,c,d);
/* Calculate(a,b,d,c) ;
Calculate(a,c,b,d) ;
Calculate(a,c,d,b) ; Calculate(a,d,b,c) ; Calculate(a,d,c,b) ;
Calculate(b,a,c,d) ;
Calculate(b,a,d,c) ;
Calculate(b,c,a,d) ; Calculate(b,c,d,a) ;
Calculate(b,d,a,c) ;
Calculate(b,d,c,a) ;
Calculate(c,a,b,d) ;
Calculate(c,a,d,b) ;
Calculate(c,b,a,d) ;
Calculate(c,b,d,a) ;
Calculate(c,d,a,b) ;
Calculate(c,d,b,a) ;
Calculate(d,a,b,c) ;
Calculate(d,a,c,b) ;
Calculate(d,b,a,c) ;
Calculate(d,b,c,a) ;
Calculate(d,c,a,b) ;
Calculate(d,c,b,a) ;
// Calculate() ;*/
cout<<“退出请按0 or 继续请按1”<<endl;
cin>>x;
if(x==0)
flag=0;
}

return 0;

}
int Calculate ( float x, float y, float z, float w) // a .b.c.d 的所有排列组合情况和运算表达式的所有情况
{
if(xy-z+w==24)
cout<<x<<"
"<<y<<"-"<<z<<"+"<<w<<"=24"<<endl;
if ((x-y)zw24)
cout<<"("<<x<<"-"<<y<<")"<<""<<z<<""<<w<<"=24"<<endl;
if ((xy)+(zw)24)
cout<<"("<<x<<""<<y<<")+("<<z<<""<<w<<")"<<"=24"<<endl;
if ((x+y)zw
24)
cout<<"("<<x<<"+"<<y<<")"<<""<<z<<""<<w<<")"<<"=24"<<endl;
if (xyz*w
24)
cout<<x<<""<<y<<""<<z<<""<<w<<"=24"<<endl;
if ((x+y
z)w==24)
cout<<"("<<x<<"+"<<y<<"
"<<z<<")"<<""<<w<<"=24"<<endl;
if ((x
y-z)w==24)
cout<<"("<<x<<"
"<<y<<"-"<<z<<")"<<""<<w<<"=24"<<endl;
if ((x
y)+z+w24)
cout<<"("<<x<<"*"<<y<<")+"<<z<<"+"<<w<<"=24"<<endl;
if ((x/y-z)*w
24)
cout<<"("<<x<<"/"<<y<<"-"<<z<<")"<<""<<w<<"=24"<<endl;
if ((x-(y-z))w==24)
cout<<"("<<x<<"-"<<"("<<y<<"-"<<z<<")"<<")
"<<w<<"=24"<<endl;
if (x-(y-z-w)==24)
cout<<x<<"-"<<"("<<y<<"-"<<z<<"-"<<w<<")"<<"=24"<<endl;
if (x+y-(z-w)==24)
cout<<x<<"+"<<y<<"-"<<"("<<z<<"-"<<w<<")"<<"=24"<<endl;
if (x
(y/z-w)24)
cout<<x<<""<<"("<<y<<"/"<<z<<"-"<<w<<")"<<"=24"<<endl;
if ((x-y
z)*w
24)
cout<<"("<<x<<"-"<<y<<""<<z<<")"<<""<<w<<"=24"<<endl;
if (x*(y-z)+w24)
cout<<x<<"*"<<"("<<y<<"-"<<z<<")"<<"+"<<w<<"=24"<<endl;
if (x+y+z/w
24)
cout<<x<<"+"<<y<<"+"<<z<<"/"<<w<<"=24"<<endl;
if ((x-y)(z-w)==24)
cout<<"("<<x<<"-"<<y<<")
("<<z<<"-"<<w<<")=24"<<endl;
if ((x+y)z/w==24)
cout<<"("<<x<<"+"<<y<<")
"<<z<<"/"<<w<<"=24"<<endl;
if (xy/(z-w)==24)
cout<<x<<"
"<<y<<"/"<<"("<<z<<"-"<<w<<")"<<"=24"<<endl;
if ((x+y)(z+w)==24)
cout<<"("<<x<<"+"<<y<<")
("<<z<<"+"<<w<<")=24"<<endl;
if ((x-y)z/w==24)
cout<<"("<<x<<"-"<<y<<")
"<<z<<"/"<<w<<"=24"<<endl;
if (x+(y+z)/w24)
cout<<x<<"+"<<"("<<y<<"+"<<z<<")"<<"/"<<w<<"=24"<<endl;
if (xy/(z+w)==24)
cout<<x<<"
"<<y<<"/"<<z<<"+"<<w<<")"<<"=24"<<endl;
if ((x+y)*z/w
24)
cout<<"("<<x<<"+"<<y<<")"<<z<<"/"<<w<<"=24"<<endl;
if ((x
y+z)w==24)
cout<<"("<<x<<"
"<<y<<"+"<<z<<")"<<""<<w<<"=24"<<endl;
if ((x
y-z)/w24)
cout<<"("<<x<<"*"<<y<<"-"<<z<<")"<<"/"<<w<<"=24"<<endl;
if ((x/y+z)*w
24)
cout<<"("<<x<<"/"<<y<<"+"<<z<<")"<<""<<w<<"=24"<<endl;
if ((x
y)/z/w24)
cout<<"("<<x<<"*"<<y<<")/"<<z<<"/"<<w<<"=24"<<endl;
if (x+y+z-w
24)
cout<<x<<"+"<<y<<"+"<<z<<"-"<<w<<"=24"<<endl;
if (x-(y-z)+w24)
cout<<x<<"-"<<"("<<y<<"-"<<z<<")"<<"+"<<w<<"=24"<<endl;
if (x/(y-z/w)24)
cout<<x<<"/"<<"("<<y<<"-"<<z<<"/"<<w<<")"<<"=24"<<endl;
if (x+(y-z)*w
24)
cout<<x<<"+"<<"("<<y<<"-"<<z<<")*"<<w<<"=24"<<endl;
if ((x+y+z)*w
24)
cout<<"("<<x<<"+"<<y<<"+"<<z<<")"<<w<<"=24"<<endl;
if ((x+y+z)w==24)
cout<<"("<<x<<"+"<<y<<"+"<<z<<")
"<<w<<"=24"<<endl;
if (x+y
z-w24)
cout<<x<<"+"<<y<<""<<z<<"-"<<w<<"=24"<<endl;
if (x
y-z/w
24)
cout<<x<<""<<y<<"-"<<z<<"/"<<w<<"=24"<<endl;
if ((x+y)z-w==24)
cout<<"("<<x<<"+"<<y<<"
"<<z<<"-"<<w<<"=24"<<endl;
if ((x-y/z)w==24)
cout<<"("<<x<<"-"<<y<<"/"<<z<<")
"<<w<<"=24"<<endl;
if (x
(y+z)+w24)
cout<<x<<""<<"("<<y<<"+"<<z<<")"<<"+"<<w<<"=24"<<endl;
if ((x
y)+(z/w)24)
cout<<"("<<x<<""<<y<<")-("<<z<<"/"<<w<<")"<<"=24"<<endl;
if ((x
y)/z-w
24)
cout<<"("<<x<<"*"<<y<<")/"<<z<<"-"<<w<<"=24"<<endl;
if ((x+y/z)*w
24)
cout<<"("<<x<<"+"<<y<<"/"<<z<<")"<<w<<"=24"<<endl;
if ((x
yz)/w==24)
cout<<"("<<x<<"
"<<y<<""<<z<<")/"<<w<<"=24"<<endl;
if ((x+y
z)/w24)
cout<<"("<<x<<"+"<<y<<""<<z<<")/"<<w<<"=24"<<endl;
if (x+(y
z)+w
24)
cout<<x<<"+"<<"("<<y<<""<<z<<")+"<<w<<"=24"<<endl;
if (x-(y+z)w==24)
cout<<x<<"-("<<y<<"+"<<z<<")
"<<w<<"=24"<<endl;
if (x-(y-z)w==24)
cout<<x<<"-("<<y<<"-"<<z<<")
"<<w<<"=24"<<endl;
if ((x
y)-z-w24)
cout<<"("<<x<<"*"<<y<<")-"<<z<<"-"<<w<<"=24"<<endl;
if (x+y/z+w
24)
cout<<x<<"+"<<y<<"/"<<z<<"+"<<w<<"=24"<<endl;
if ((x-y)z-w==24)
cout<<"("<<x<<"-"<<y<<"
"<<z<<"-"<<w<<"=24"<<endl;
if ((x+y)/z+w24)
cout<<"("<<x<<"+"<<y<<"/"<<z<<"+"<<w<<"=24"<<endl;
if ((x*y)+z-w
24)
cout<<"("<<x<<""<<y<<")+"<<z<<"-"<<w<<"=24"<<endl;
if ((x/y)+z+w==24)
cout<<"("<<x<<"/"<<y<<"+"<<z<<"+"<<w<<"=24"<<endl;
if ((x
y)z-w==24)
cout<<"("<<x<<"
"<<y<<")("<<z<<")-"<<w<<"=24"<<endl;
if ((x
y+z)/w24)
cout<<"("<<x<<""<<y<<"+"<<z<<")/"<<w<<"=24"<<endl;
if (x+y+z
w
24)
cout<<x<<"+"<<y<<"+"<<z<<""<<w<<"=24"<<endl;
if (x
(y-z)/w24)
cout<<x<<""<<"("<<y<<"-"<<z<<")/"<<w<<"=24"<<endl;
if (x/y
z+w
24)
cout<<x<<"/"<<y<<""<<z<<"+"<<w<<"=24"<<endl;
if (x+y
zw==24)
cout<<x<<"+"<<y<<"
"<<z<<""<<w<<"=24"<<endl;
if (x+y+z+w==24)
cout<<x<<"+"<<y<<"+"<<z<<"+"<<w<<"=24"<<endl;
if ((x
y)/(zw)==24)
cout<<"("<<x<<"
"<<y<<")/("<<z<<""<<w<<")"<<"=24"<<endl;
if (x+(y+z)w==24)
cout<<x<<"+("<<y<<"+"<<z<<")
"<<w<<"=24"<<endl;
if ((x-y)z+w==24)
cout<<"("<<x<<"-"<<y<<"
"<<z<<"+"<<w<<"=24"<<endl;
if ((x+y+z)/w24)
cout<<"("<<x<<"+"<<y<<"+"<<z<<")/"<<w<<"=24"<<endl;
if ((x+y)*z+w
24)
cout<<"("<<x<<"+"<<y<<")
"<<z<<"+"<<w<<"=24"<<endl;
if ((xy)z+w==24)
cout<<"("<<x<<"
"<<y<<")
("<<z<<")+"<<w<<"=24"<<endl;
if ((xy)-(z-w)==24)
cout<<"("<<x<<"
"<<y<<")-("<<z<<"-"<<w<<")"<<"=24"<<endl;
if ((xy)-(z+w)==24)
cout<<"("<<x<<"
"<<y<<")-("<<z<<"+"<<w<<")"<<"=24"<<endl;
if ((x-y-z)w==24)
cout<<"("<<x<<"-"<<y<<"-"<<z<<")
"<<w<<"=24"<<endl;
if ((xy)/z+w==24)
cout<<"("<<x<<"
"<<y<<")/"<<z<<"+"<<w<<"=24"<<endl;
if ((x+y-z)w==24)
cout<<"("<<x<<"+"<<y<<"-"<<z<<")
"<<w<<"=24"<<endl;
if (x/(y/z-w)==24)
cout<<x<<"/("<<y<<"/"<<z<<"-"<<w<<")=24"<<endl;
if ((xy)-(zw)==24)
cout<<"("<<x<<""<<y<<")-("<<z<<""<<w<<")"<<"=24"<<endl;

//else
//cout<<“不可以组成24”<<endl; return 0;
}
程序截屏如下:24点游戏C实现