24点游戏代码

转载 2006年06月23日 15:45:00

#include <iostream.h>
#include <stdlib.h>
#include <stdio.h>

double a[24][4];
int b[24][4];
double num1,num2,num3,num4;

void initiala()
{
    a[0][0]=num1;a[0][1]=num2;a[0][2]=num3;a[0][3]=num4;
    a[1][0]=num1;a[1][1]=num2;a[1][2]=num4;a[1][3]=num3;
    a[2][0]=num1;a[2][1]=num3;a[2][2]=num2;a[2][3]=num4;
    a[3][0]=num1;a[3][1]=num3;a[3][2]=num4;a[3][3]=num2;
    a[4][0]=num1;a[4][1]=num4;a[4][2]=num3;a[4][3]=num2;
    a[5][0]=num1;a[5][1]=num4;a[5][2]=num2;a[5][3]=num3;
    
     a[6][0]=num2;a[6][1]=num1;a[6][2]=num3;a[6][3]=num4;
     a[7][0]=num2;a[7][1]=num1;a[7][2]=num4;a[7][3]=num3;
     a[8][0]=num2;a[8][1]=num3;a[8][2]=num1;a[8][3]=num4;
     a[9][0]=num2;a[9][1]=num3;a[9][2]=num4;a[9][3]=num1;    
     a[10][0]=num2;a[10][1]=num4;a[10][2]=num3;a[10][3]=num1;
     a[11][0]=num2;a[11][1]=num4;a[11][2]=num1;a[11][3]=num3;
    
     a[12][0]=num3;a[12][1]=num1;a[12][2]=num2;a[12][3]=num4;
     a[13][0]=num3;a[13][1]=num1;a[13][2]=num4;a[13][3]=num2;
     a[14][0]=num3;a[14][1]=num2;a[14][2]=num1;a[14][3]=num4;
     a[15][0]=num3;a[15][1]=num2;a[15][2]=num4;a[15][3]=num1;   
     a[16][0]=num3;a[16][1]=num4;a[16][2]=num3;a[16][3]=num1;
     a[17][0]=num3;a[17][1]=num4;a[17][2]=num1;a[17][3]=num3;
    
     a[18][0]=num4;a[18][1]=num1;a[18][2]=num3;a[18][3]=num2;
     a[19][0]=num4;a[19][1]=num1;a[19][2]=num2;a[19][3]=num3;   
     a[20][0]=num4;a[20][1]=num2;a[20][2]=num3;a[20][3]=num1;
     a[21][0]=num4;a[21][1]=num2;a[21][2]=num1;a[21][3]=num3;
     a[22][0]=num4;a[22][1]=num3;a[22][2]=num1;a[22][3]=num2;
     a[23][0]=num4;a[23][1]=num3;a[23][2]=num2;a[23][3]=num1;    
         
}

 

void main()
{
 int i=0;
 int j=0;
 int k=0;
 int m=0;
 bool flag=false;
    double mid1,mid2,mid3;
 cout<<"输入四个数,以空格隔开(如2 7 7 10):";
 cin>>num1>>num2>>num3>>num4;
 initiala();

 for(i=0;i<24;i++)
 {
  num1=a[i][0];num2=a[i][1];num3=a[i][2];num4=a[i][3];
  for(j=1;j<5;j++)
  {
   switch(j)
   {
    case 1: mid1=num1+num2;break;
    case 2: mid1=num1-num2;break;
    case 3: mid1=num1*num2;break;
    case 4: mid1=num1/num2;break;
    default: goto loop;    
   }
   for(k=1;k<5;k++)
   {
     switch(k)
     {
         case 1: mid2=num3+mid1;break;
       case 2: mid2=mid1-num3;break;
       case 3: mid2=num3*mid1;break;
       case 4: mid2=mid1/num3;break;
        default: goto loop;    
     }
    for(m=1;m<5;m++)
    {
        switch(m)
        {
       case 1: mid3=mid2+num4;break;
          case 2: mid3=mid2-num4;break; 
          case 3: mid3=mid2*num4;break;
          case 4: mid3=mid2/num4;break;
        default: goto loop;   
        }
      if(mid3==24||mid3==-24)
       {
                 flag=true;
          goto loop;  
       }
      if((mid3==1.0/24||mid3==-1.0/24)&&m==4)
       {
                 flag=true;
          goto loop;  
       }
     }//form
   }//fork
   
  }//forj 
 }//fori
 cout<<"Second monthd"<<endl;
for(i=0;i<24;i++)        //////////////num1,num2****num3,num4
 {
     num1=a[i][0];num2=a[i][1];num3=a[i][2];num4=a[i][3];
  for(j=1;j<5;j++)
  {
   switch(j)
   {
    case 1: mid1=num1+num2;break;
    case 2: mid1=num1-num2;break;
    case 3: mid1=num1*num2;break;
    case 4: mid1=num1/num2;break;
    default: goto loop;    
   }
   for(k=1;k<5;k++)
   {
     switch(k)
     {
       case 1: mid2=num3+num4;break;
       case 2: mid2=num4-num3;break;
       case 3: mid2=num3*num4;break;
       case 4: mid2=num4/num3;break;
        default: goto loop;    
     }
    for(m=1;m<5;m++)
    {
        switch(m)
        {
       case 1: mid3=mid2+mid1;break;
          case 2: mid3=mid2-mid1;break; 
          case 3: mid3=mid2*mid1;break;
          case 4: mid3=mid2/mid1;break;
        default: goto loop;   
        }
      if(mid3==24||mid3==-24)
       {
                 flag=true;
          goto loop1;  
       }
      if((mid3==1.0/24||mid3==-1.0/24)&&m==4)
       {
                 flag=true;
          goto loop1;  
       }
     }//form
   }//fork
   
  }//forj 
 }//fori

 

loop:        //first.
 if(!flag)
  cout<<"failed!"<<endl;
 else
 {
  if(mid3==24||mid3==-24)
  {
  cout<<"/n答案是:((";
  cout<<a[i][0];
   switch(j)
   {
    case 1: cout<<"+";break;
    case 2: cout<<"-";break;
    case 3: cout<<"*";break;
       case 4: cout<<"/";break;
      default: cout<<" ";break;
   }
   cout<<a[i][1]<<")";
   switch(k)
   {
    case 1: cout<<"+";break;
    case 2: cout<<"-";break;
    case 3: cout<<"*";break;
       case 4: cout<<"/";break;
      default: cout<<" ";break;
   }
    cout<<a[i][2]<<")";
   switch(m)
   {
    case 1: cout<<"+";break;
    case 2: cout<<"-";break;
    case 3: cout<<"*";break;
       case 4: cout<<"/";break;
      default: cout<<" ";break;
   }
   cout<<a[i][3]<<endl;
   getchar();
  }
  else/////////////////////////////////////////////1/24/////////////////////
  {
  cout<<"/n答案是:";
  cout<<a[i][3];

     switch(m)
   {
    case 1: cout<<"+";break;
    case 2: cout<<"-";break;
    case 3: cout<<"*";break;
       case 4: cout<<"/";break;
      default: cout<<" ";break;
   }

  cout<<"(("<<a[i][0];
   switch(j)
   {
    case 1: cout<<"+";break;
    case 2: cout<<"-";break;
    case 3: cout<<"*";break;
       case 4: cout<<"/";break;
      default: cout<<" ";break;
   }
   cout<<a[i][1]<<")";
   switch(k)
   {
    case 1: cout<<"+";break;
    case 2: cout<<"-";break;
    case 3: cout<<"*";break;
       case 4: cout<<"/";break;
      default: cout<<" ";break;
   }
    cout<<a[i][2]<<")"<<endl;
  
   
   getchar();
  }
  
 }
 loop1: ////////////////second ////////////////////////
     if(flag)
  {
      if(mid3==24||mid3==-24)
  {
  cout<<"/n答案是:(";
  cout<<a[i][0];
   switch(j)
   {
    case 1: cout<<"+";break;
    case 2: cout<<"-";break;
    case 3: cout<<"*";break;
       case 4: cout<<"/";break;
      default: cout<<" ";break;
   }
   cout<<a[i][1]<<")";
   switch(m)
   {
    case 1: cout<<"+";break;
    case 2: cout<<"-";break;
    case 3: cout<<"*";break;
       case 4: cout<<"/";break;
      default: cout<<" ";break;
   }
    cout<<"("<<a[i][2];
   switch(k)
   {
    case 1: cout<<"+";break;
    case 2: cout<<"-";break;
    case 3: cout<<"*";break;
       case 4: cout<<"/";break;
      default: cout<<" ";break;
   }
   cout<<a[i][3]<<")"<<endl;
   getchar();
  }
  else/////////////////////////////////////////////1/24/////////////////////
  {
  cout<<"/n答案是:";
  cout<<a[i][3];

     switch(m)
   {
    case 1: cout<<"+";break;
    case 2: cout<<"-";break;
    case 3: cout<<"*";break;
       case 4: cout<<"/";break;
      default: cout<<" ";break;
   }

  cout<<"(("<<a[i][0];
   switch(j)
   {
    case 1: cout<<"+";break;
    case 2: cout<<"-";break;
    case 3: cout<<"*";break;
       case 4: cout<<"/";break;
      default: cout<<" ";break;
   }
   cout<<a[i][1]<<")";
   switch(k)
   {
    case 1: cout<<"+";break;
    case 2: cout<<"-";break;
    case 3: cout<<"*";break;
       case 4: cout<<"/";break;
      default: cout<<" ";break;
   }
    cout<<a[i][2]<<")"<<endl;
  
   
   getchar();
  }
  
  }
 getchar();
  
}

         

 

 

            

华为OJ之24点算法(非递归C++代码)

1问题描述给定4个正整数,利用加减乘除判断是否可以组成24点。2思路有非递归与递归两种做法。此处介绍非递归。 4个正整数随机选择3个,进行三个数字的运算,共4种情况,不递归,列举出来即可。 三个数...

c++语法点

重要的经验1)在设计函数时,参数若为类类型,则一般都用引用类型,如果为内部数据结构则不适用引用。2)在写if语句的时候注意应该把常量放在变量之前,防止一下错误 if(a=1){...}编译器不会报错,...
  • Ididcan
  • Ididcan
  • 2009年10月30日 10:15
  • 1802

24点游戏代码

  • 2014年07月05日 19:47
  • 3KB
  • 下载

24点游戏开发代码

  • 2012年10月30日 14:23
  • 2.57MB
  • 下载

C语言-纸牌计算24点小游戏

C语言实现纸牌计算24点小游戏  利用系统时间设定随机种子生成4个随机数,并对4个数字之间的运算次序以及运算符号进行枚举,从而计算判断是否能得出24,以达到程序目的。程序主要功能已完成,目前...

速算24点游戏核心代码C++

  • 2012年05月23日 19:41
  • 111KB
  • 下载

24点游戏代码

  • 2013年08月22日 15:48
  • 1.67MB
  • 下载

[编程之美] PSet1.16 24点游戏

24点游戏规则: 给玩家4张牌,每张牌面值在1-13之间,允许其中有数值相同的...

24点游戏代码

  • 2014年08月13日 21:26
  • 15KB
  • 下载

JAVA24点游戏逼真图形版代码

  • 2009年05月19日 11:06
  • 2.29MB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:24点游戏代码
举报原因:
原因补充:

(最多只允许输入30个字)