24点游戏

#include <iostream>
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
using namespace std;  
int  main()  
{ 
 int a;
 int b;
 int c;
 int d;  
start:/*为go to 语句做标记*/  
cout<<"请输入4个整型数据,范围在1-13之间即可"<<endl;/*按照要求逐步输入四个数据*/
cout<<" 第一个数:";  
cin>>a;  
cout<<" 第二个数:";  
cin>>b;  
cout<<" 第三个数:";  
cin>>c;  
cout<<" 第四个数:";  
cin>>d;  
cout<<"输出所有算法如下:"<<endl;  
if ((a<1)||(a>13)||(b<1)||(b>13)||(c<1)||(c>13)||(d<1)||(d>13))  
{ cout<<"输入数据超出取值范围,请重新输入"<<endl;  
goto start;
}                                                     
/*此处使用go to 语句,其主要目的是为了满足所输入的四个整型
数据的取值范控制在1-13之间,超出该范围就需要重新从键盘输入数据*/                                                              
int Cal( float a, float  b , float c, float d);              
/*罗列出所输入的四个数a,b,c,d的所有排列组合情况,四个数共有24中排列组合*/  
Cal(a,b,d,c); Cal(a,b,c,d); Cal(a,c,d,b); Cal(a,c,b,d); 
Cal(a,d,b,c); Cal(a,d,c,b); Cal(b,a,c,d); Cal(b,a,d,c);
Cal(b,c,a,d); Cal(b,c,d,a); Cal(b,d,c,a); Cal(b,d,a,c);  
Cal(c,a,b,d); Cal(c,a,d,b); Cal(c,b,d,a); Cal(c,b,a,d);
Cal(c,d,a,b); Cal(c,d,b,a); Cal(d,a,b,c); Cal(d,a,c,b);
Cal(d,b,c,a); Cal(d,b,a,c); Cal(d,c,a,b); Cal(d,c,b,a);   
return 0;
}  
int Cal( float x, float y, float z, float w)                   
/*罗列出运算表达式的所有情况,在运行界面中如果有满足条件的就显示*/  
{   
    if (x+y+z+w==24)
		cout<<x<<"+"<<y<<"+"<<z<<"+"<<w<<"=24"<<endl;  
    else 
		if(x+y+z-w==24) 
		cout<<x<<"+"<<y<<"+"<<z<<"-"<<w<<"=24"<<endl;  
    else
		if((x+y)*(z+w)==24) 
		cout<<"("<<x<<"+"<<y<<")*("<<z<<"+"<<w<<")=24"<<endl;  
    else 
		if((x-y)*(z+w)==24) 
		cout<<"("<<x<<"-"<<y<<")*("<<z<<"+"<<w<<")=24"<<endl;  
    else
		if((x-y)*(z-w)==24) 
		cout<<"("<<x<<"-"<<y<<")*("<<z<<"-"<<w<<")=24"<<endl;  
    else
		if((x+y+z)*w==24) 
		cout<<"("<<x<<"+"<<y<<"+"<<z<<")*"<<w<<"=24"<<endl;  
    else 
		if((x-y-z)*w==24) 
		cout<<"("<<x<<"-"<<y<<"-"<<z<<")*"<<w<<"=24"<<endl;  
    else
		if((x+y-z)*w==24) 
		cout<<"("<<x<<"+"<<y<<"-"<<z<<")*"<<w<<"=24"<<endl;  
    else 
		if((x*y*z)/w==24) 
		cout<<"("<<x<<"*"<<y<<"*"<<z<<")/"<<w<<"=24"<<endl;  
    else
		if((x*y)*(z+w)==24) 
		cout<<"("<<x<<"*"<<y<<")*("<<z<<"+"<<w<<")=24"<<endl;  
    else 
		if((x*y)*(z-w)==24) 
		cout<<"("<<x<<"*"<<y<<")*("<<z<<"-"<<w<<")=24"<<endl;  
    else 
		if((x*y)*z-w==24) 
		cout<<"("<<x<<"*"<<y<<")*("<<z<<")-"<<w<<"=24"<<endl;  
    else 
		if((x*y)*z+w==24) 
		cout<<"("<<x<<"*"<<y<<")*("<<z<<")+"<<w<<"=24"<<endl;  
    else 
		if(x*y*z*w==24) 
		cout<<x<<"*"<<y<<"*"<<z<<"*"<<w<<"=24"<<endl;  
    else 
		if ((x+y)+(z/w)==24) 
		cout<<"("<<x<<"+"<<y<<")+("<<z<<"/"<<w<<")"<<"=24"<<endl;  
    else 
		if ((x+y)*(z/w)==24) 
		cout<<"("<<x<<"+"<<y<<")*("<<z<<"/"<<w<<")"<<"=24"<<endl;  
    else 
		if((x*y)+z+w==24) 
		cout<<"("<<x<<"*"<<y<<")+"<<z<<"+"<<w<<"=24"<<endl;  
    else 
		if ((x*y)+z-w==24) 
		cout<<"("<<x<<"*"<<y<<")+"<<z<<"-"<<w<<"=24"<<endl;  
    else 
		if((x*y)-(z/w)==24) 
		cout<<"("<<x<<"*"<<y<<")-("<<z<<"/"<<w<<")"<<"=24"<<endl;  
    else
		if((x*y)+(z/w)==24) 
		cout<<"("<<x<<"*"<<y<<")-("<<z<<"/"<<w<<")"<<"=24"<<endl;  
    else
		if((x*y)-z-w==24) 
		cout<<"("<<x<<"*"<<y<<")-"<<z<<"-"<<w<<"=24"<<endl;  
    else
		if((x*y)+(z*w)==24) 
		cout<<"("<<x<<"*"<<y<<")+("<<z<<"*"<<w<<")"<<"=24"<<endl;  
    else
		if((x*y)-(z*w)==24) 
		cout<<"("<<x<<"*"<<y<<")-("<<z<<"*"<<w<<")"<<"=24"<<endl;  
    else
		if((x*y)/(z*w)==24) 
		cout<<"("<<x<<"*"<<y<<")/("<<z<<"*"<<w<<")"<<"=24"<<endl;  
    else
		if((x*y)/(z-w)==24) 
		cout<<"("<<x<<"*"<<y<<")/("<<z<<"-"<<w<<")"<<"=24"<<endl;  
    else
		if((x*y)/(z+w)==24)
		cout<<"("<<x<<"*"<<y<<")/("<<z<<"+"<<w<<")"<<"=24"<<endl;  
    else
		cout<<" "<<endl;    
    return 0;
 }

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值