当前位置:   article > 正文

24点(随机输出四个数,输出所有结果为24的等式)_随机给我生成四个可以得到24的书

随机给我生成四个可以得到24的书
#include <iostream> 


#include <string> 


#include <math.h> 


#include"time.h" /*需引用的头文件*/


using namespace std; 


const double LING = 1E-6; 


const int CONT = 4; 


const int VOLUE = 24; 


double number[CONT]; 


string biaodashi[CONT]; 


bool Panduan = false;                    //判断是否有解。


int count = 0;  


void Chazhao(int n) 





      if (n == 1)


   { 


            if ( fabs(number[0] - VOLUE) <= LING   ) 


   {        


       cout << biaodashi[0] << "\t\t";


      Panduan = true;


      count ++;


      if((count % 3)==0) //使输出时每行三个表达式


       cout<<endl;


            } 


   else


   {   } 


       } 


       for(int i=0; i < n; i++)//查找


    {


                for (int j = i + 1; j < n; j++)//与其后面的查找进行计算


    { 


        double  a, b; 


        string  expa, expb; 


        a = number[i]; 


        b = number[j]; 


        number[j] = number[n - 1];  


   expa = biaodashi[i]; 


        expb = biaodashi[j]; 


        biaodashi[j] = biaodashi[n - 1];


         biaodashi[i]= '('+ expa + '+' + expb + ')'; 


         number[i] = a + b; 


         Chazhao(n-1);


         biaodashi[i]='('+ expa+ '-' + expb + ')';  


         number[i] = a - b; 


         Chazhao(n-1);  


         biaodashi[i] = '('+expb + '-' + expa + ')';  


         number[i] = b -a; 


         Chazhao(n-1);                                            


         biaodashi[i]= '('+ expa +'*'+ expb+ ')';  


         number[i]=a*b; 


         Chazhao(n-1); 


        if (b != 0)


      {


         biaodashi[i] ='('+expa+'/' + expb + ')';  


         number[i] = a / b; 


         Chazhao(n-1); 


       }   


        if (a != 0)


      { 


            biaodashi[i]='('+expb + '/'+ expa + ')';  


            number[i] = b / a; 


            Chazhao(n-1); 


      } 


       number[i] =a;        


       number[j]=b;        


       biaodashi[i] = expa;          


       biaodashi[j] = expb;         


                } 


    }





int main() 



int X=1,Y=13;

srand((unsigned)time(NULL)); /*随机种子*/  
  

cout<<"随机产生四个数"<<endl;


for (int i = 0; i < CONT; i++)

 {

    char   ch[20];  


   number[i]=rand()%(Y-X+1)+X;


    cout<<number[i]<<"  ";          

     

    itoa(number[i],ch, 10);   //itoa()函数的作用是把第一个参数(数值)传送(转换)到第二个参数(字符串)中去,第三个参数(int型)是该数值在字符串里以什么进制存放。


    biaodashi[i] = ch; 


        }


 cout<<endl;


 Chazhao(CONT) ;


 if(Panduan==true)


 { 


     cout   << "\n成功!" << endl;


    cout<<"总共的计算方法共有: "<<count<<endl;


        } 


 else


 { 


            cout << "失败!"   <<   endl; 


        }      


 return 0;


}
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/64304?site
推荐阅读
相关标签
  

闽ICP备14008679号