为了账号安全,请及时绑定邮箱和手机立即绑定

枚举算法求解

枚举算法求解

C++
looya 2018-03-14 22:39:09
/*用枚举法解决“填写运算符问题”在下面的算式中,添加'+','-','*','/'运算符,使这个式子成立:5 5 5 5 5=5*/#include<iostream>using namespace std;int main(){ char ch[5]={' ','+','-','*','/'}; int left;   //保存中间结果的值 int right;      //右边的值 int result; int a[5],j; int i[4],count=0; cout<<"请输入5个数,中间用空格隔开:"; for(j=1;j<=5;j++) cin>>a[j]; cout<<"请输入结果:"; cin>>right; for(i[1]=1;i[1]<=4;i[1]++)       //i[1]代表第一个运算符,i[1]=1代表第一个运算符为‘+’,i[1]=2代表第二个运算符为‘-’... { if(i[1]<4||a[2]!=0)     //运算符若为'/',则第二个运算数不能为0; { for(i[2]=1;i[2]<=4;i[2]++)   //i[2]代表第二个运算符,以此类推 { if(i[2]<4||a[3]!=0) { for(i[3]=1;i[3]<=4;i[3]++) { if(i[3]<4||a[4]!=0) { for(i[4]=1;i[4]<=4;i[4]++) { if(i[4]<4||a[5]!=0) { left=a[1]; for(j=1;j<=4;j++) { switch(ch[i[j]]) { case '+': left=left+a[j+1]; break; case '-': left=left-a[j+1]; break; case '*': left=left*a[j+1]; break; case '/': left=left/a[j+1]; break; } } if(left==right) { count++; cout<<count<<':'; for(j=1;j<=4;j++) cout<<a[j]<<ch[i[j]]; cout<<a[5]<<"="<<right<<endl; } } } } } } } } } if(count==0) cout<<"没有符合要求的方法!"<<endl; return 0;} 为什么我运行的时候第四个运算符总是'/' ,是不是漏了哪里呀,求解
查看完整描述

目前暂无任何回答

  • 0 回答
  • 0 关注
  • 927 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信