//**************24点计算小程序*************
//作者:Linx-huo
//版本:v1.0
//创建时间:2017/04/12
//主要功能:随机生成四个数通过加减乘除运算得到24
//
//****************************************
#include<iostream.h>
#include <ctime>
#include <cstdlib>
int jjcc(int a,int b,char sig);
int calExpress(int a,int b,int c,int d);
char sig[4]={'+','-','*','/'};
bool flag=true;
int num=0;
void main()
{
char t;
int a,b,c,d,s[4],i,j,k,m;
clock_t t1=clock(); //产生随机数
cout<<"计算24点的四个数为";
srand((unsigned)time(NULL));
a=rand()%13+1;
b=rand()%13+1;
c=rand()%13+1;
d=rand()%13+1;
cout<<a<<" "<<b<<" "<<c<<" "<<d<<endl;
cout<<"需要帮助吗?(y/n)"<<endl;
if((t=cin.get())=='y')
{
s[0]=a;
s[1]=b;
s[2]=c;
s[3]=d;
for(i=0;i<4;i++)
for(j=0;j<4;j++)
for(k=0;k<4;k++)
for(m=0;m<4;m++)
if(i!=j && i!=k && i!=m && j!= k && j!=m && k!=m)
if(calExpress(s[i],s[j],s[k],s[m]) ==1)
return;
if (num==0) cout << "no answer" << endl;
}
}
int jjcc(int a,int b,char sig) //计算两个数的加减乘除的结并返回
{
switch(sig)
{
case'+':
return a+b;
case'-':
return a-b;
case'*':
return a*b;
case'/':
if(a%b!=0) flag=false;
return a/b;
}
}
int calExpress(int a, int b, int c, int d) //寻找满足结果为24的式子
{
int temp1,temp2,temp3;
for(int i=0;i<4;i++){
for(int j=0;j<4;j++){
for(int k=0;k<4;k++)
{
flag=true;
if(i<=1)
{
if(j<=1)
{
temp1=jjcc(c,d,sig[k]);
temp2=jjcc(a,b,sig[i]);
temp3=jjcc(temp1,temp2,sig[j]);
if(temp3==24&&flag==true)
{
num++;
cout<<a<<sig[i]<<b<<sig[j]<<c<<sig[k]<<d<<"=24"<<endl;
return 1;
}
}
else
{
temp1=jjcc(b,c,sig[j]);
temp2=jjcc(temp1,d,sig[k]);
temp3=jjcc(a,temp2,sig[i]);
if(temp3==24&&flag==true)
{
cout<<a<<sig[i]<<b<<sig[j]<<c<<sig[k]<<d<<"=24"<<endl;
num++;
return 1;
}
}
}
else
{
temp1=jjcc(a,b,sig[i]);
if(j<=1)
{
temp2=jjcc(c,d,sig[k]);
temp3 = jjcc(temp1,temp2,sig[j]);
if(temp3 == 24&& flag == true)
{
num++;
cout << a << sig[i] << b << sig[j] <<c << sig[k] << d << " = 24"<< endl;
return 1;
}
}
else
{
temp2 = jjcc(temp1, c, sig[j]);
temp3 = jjcc(temp2, d, sig[k]);
if(temp3 == 24&& flag == true)
{
num++;
cout << a << sig[i] << b << sig[j] <<c << sig[k] << d << " = 24"<< endl;
return 1;
}
}
}
}
}
}
return 0;
}
计算24点小程序
最新推荐文章于 2021-07-14 19:48:52 发布