中学生编程真心求指教。
一个自己写的速算24点,但交上去老师说 C++学的面向对象要体现出来。 我实在想不出24点速算怎么体现面向对象啊。我用的是穷举法- -/ 智商有限。
代码如下:
#include <iostream>
using namespace std;
int flag=0;
float jisuan (float x,float y,float z,float w);
int main()
{
int a,b,c,d;
fanhui:
cout<<"请输入四个数字(1-10)"<<endl;
cout<<" 数字一:";
cin>>a;
cout<<" 数字二:";
cin>>b;
cout<<" 数字三:";
cin>>c;
cout<<" 数字四:";
cin>>d;
if ((a<0)||(a>10)||(b<0)||(b>10)||(c<0)||(c>10)||(d<0)||(d>10))
{
cout<<"您输入的数字不符合要求,请重新输入"<<endl;
goto fanhui;
}
for(int k=0,e;k<=1;k++)
{
jisuan(a,b,c,d);
for(int i=0;i<=1;i++)
{
if(c!=d)
{
e=c;c=d;d=e;
jisuan(a,b,c,d);
}
if(b!=c)
{
e=b;b=c;c=e;
jisuan(a,b,c,d);
}
}
if(c!=d)
e=c;c=d;d=e;
jisuan(a,b,c,d);
if(b!=c)
{
e=b;b=c;c=e;
}
else
k++;
}
if(!flag) cout<<"此题无解"<<endl;
return 0;
}
float jisuan (float x,float y,float z,float w)
{
if(x+y+z+w==24)
{
cout<<x<<"+"<<y<<"+"<<z<<"+"<<w<<"=24"<<endl;
flag=1;
}
else if(x+y+z-w==24)
{
cout<<x<<"+"<<y<<"+"<<z<<"-"<<w<<"=24"<<endl;
flag=1;
}
else if(x*y+z+w==24)
{
cout<<x<<"*"<<y<<"+"<<z<<"+"<<w<<"=24"<<endl;
flag=1;
}
else if(x*y+z-w==24)
{
cout<<x<<"*"<<y<<"+"<<z<<"-"<<w<<"=24"<<endl;
flag=1;
}
else if(x*y-z-w==24)
{
cout<<x<<"*"<<y<<"-"<<z<<"-"<<w<<"=24"<<endl;
flag=1;
}
else if(x/y+z+w==24)
{
cout<<x<<"/"<<y<<"+"<<z<<"+"<<w<<"=24"<<endl;
flag=1;
}
else if((x+y)*z+w==24)
{
cout<<"("<<x<<"+"<<y<<")*"<<z<<"+"<<w<<"=24"<<endl;
flag=1;
}
else if((x+y)*z-w==24)
{
cout<<"("<<x<<"+"<<y<<")*"<<z<<"-"<<w<<"=24"<<endl;
flag=1;
}
else if((x-y)*z+w==24)
{
cout<<"("<<x<<"-"<<y<<")*"<<z<<"+"<<w<<"=24"<<endl;
flag=1;
}
else if((x-y)*z-w==24)
{
cout<<"("<<x<<"-"<<y<<")*"<<z<<"-"<<w<<"=24"<<endl;
flag=1;
}
else if((x+y)/z+w==24)
{
cout<<"("<<x<<"+"<<y<<")/"<<z<<"+"<<w<<"=24"<<endl;
flag=1;
}
else if((x+y+z)*w==24)
{
cout<<"("<<x<<"+"<<y<<"+"<<z<<")*"<<w<<"=24"<<endl;
flag=1;
}
else if((x+y-z)*w==24)
{
cout<<"("<<x<<"+"<<y<<"-"<<z<<")*"<<w<<"=24"<<endl;
flag=1;
}
else if((x-y-z)*w==24)
{
cout<<"("<<x<<"-"<<y<<"-"<<z<<")*"<<w<<"=24"<<endl;
flag=1;
}
else if((x+y+z)/w==24)
{
cout<<"("<<x<<"+"<<y<<"+"<<z<<")/"<<w<<"=24"<<endl;
flag=1;
}
else if((x+y)*(z+w)==24)
{
cout<<"("<<x<<"+"<<y<<")*("<<z<<"+"<<w<<")=24"<<endl;
flag=1;
}
else if((x+y)*(z-w)==24)
{
cout<<"("<<x<<"+"<<y<<")*("<<z<<"-"<<w<<")=24"<<endl;
flag=1;
}
else if((x-y)*(z-w)==24)
{
cout<<"("<<x<<"-"<<y<<")*("<<z<<"-"<<w<<")=24"<<endl;
flag=1;
}
else if(x*y*z+w==24)
{
cout<<x<<"*"<<y<<"*"<<z<<"+"<<w<<"=24"<<endl;
flag=1;
}
else if(x*y*z-w==24)
{
cout<<x<<"*"<<y<<"*"<<z<<"-"<<w<<"=24"<<endl;
flag=1;
}
else if(x*y/z+w==24)
{
cout<<x<<"*"<<y<<"/"<<z<<"+"<<w<<"=24"<<endl;
flag=1;
}
else if(x*y/z-w==24)
{
cout<<x<<"*"<<y<<"/"<<z<<"-"<<w<<"=24"<<endl;
flag=1;
}
else if(x*y+z*w==24)
{
cout<<x<<"*"<<y<<"+"<<z<<"*"<<w<<"=24"<<endl;
flag=1;
}
else if(x*y-z*w==24)
{
cout<<x<<"*"<<y<<"-"<<z<<"*"<<w<<"=24"<<endl;
flag=1;
}
else if(x*y+z/w==24)
{
cout<<x<<"*"<<y<<"+"<<z<<"/"<<w<<"=24"<<endl;
flag=1;
}
else if(x*y-z/w==24)
{
cout<<x<<"*"<<y<<"-"<<z<<"/"<<w<<"=24"<<endl;
flag=1;
}
else if((x+y)*z*w==24)
{
cout<<"("<<x<<"+"<<y<<")*"<<z<<"*"<<w<<"=24"<<endl;
flag=1;
}
else if((x+y)*z/w==24)
{
cout<<"("<<x<<"+"<<y<<")*"<<z<<"/"<<w<<"=24"<<endl;
flag=1;
}
else if((x-y)*z*w==24)
{
cout<<"("<<x<<"-"<<y<<")*"<<z<<"*"<<w<<"=24"<<endl;
flag=1;
}
else if((x-y)*z/w==24)
{
cout<<"("<<x<<"-"<<y<<")*"<<z<<"/"<<w<<"=24"<<endl;
flag=1;
}
else if((x*y)/(z+w)==24)
{
cout<<"("<<x<<"*"<<y<<")/("<<z<<"+"<<w<<")=24"<<endl;
flag=1;
}
else if((z-w)!=0&&(x*y)/(z-w)==24)
{
cout<<"("<<x<<"*"<<y<<")/("<<z<<"-"<<w<<")=24"<<endl;
flag=1;
}
else if((x+y*z)/w==24)
{
cout<<"("<<x<<"+"<<y<<"*"<<z<<")/"<<w<<"=24"<<endl;
flag=1;
}
else if((x*y-z)/w==24)
{
cout<<"("<<x<<"*"<<y<<"-"<<z<<")/"<<w<<"=24"<<endl;
flag=1;
}
else if((x+y/z)*w==24)
{
cout<<"("<<x<<"+"<<y<<"/"<<z<<")*"<<w<<"=24"<<endl;
flag=1;
}
else if((x+y*z)*w==24)
{
cout<<"("<<x<<"+"<<y<<"*"<<z<<")*"<<w<<"=24"<<endl;
flag=1;
}
else if((x-y*z)*w==24)
{
cout<<"("<<x<<"-"<<y<<"*"<<z<<")*"<<w<<"=24"<<endl;
flag=1;
}
else if((x-y/z)*w==24)
{
cout<<"("<<x<<"-"<<y<<"/"<<z<<")*"<<w<<"=24"<<endl;
flag=1;
}
else if((x*y-z)*w==24)
{
cout<<"("<<x<<"*"<<y<<"-"<<z<<")*"<<w<<"=24"<<endl;
flag=1;
}
else if((x/y-z)*w==24)
{
cout<<"("<<x<<"/"<<y<<"-"<<z<<")*"<<w<<"=24"<<endl;
flag=1;
}
else if((y-z/w)!=0&&x/(y-z/w)==24)
{
cout<<x<<"/"<<"("<<y<<"-"<<z<<"/"<<w<<")"<<endl;
flag=1;
}
else if((y/z-w)!=0&&x/(y/z-w)==24)
{
cout<<x<<"/"<<"("<<y<<"/"<<z<<"-"<<w<<")"<<endl;
flag=1;
}
else if(x*y*z*w==24)
{
cout<<x<<"*"<<y<<"*"<<z<<"*"<<w<<"=24"<<endl;
flag=1;
}
else if(x*y*z/w==24)
{
cout<<x<<"*"<<y<<"/"<<z<<"/"<<w<<"=24"<<endl;
flag=1;
}
else if(x*y/z/w==24)
{
cout<<x<<"*"<<y<<"/"<<z<<"/"<<w<<"=24"<<endl;
flag=1;
}
return 0;
}
[解决办法]
[解决办法]
http://topic.csdn.net/u/20120202/11/446d2bd3-e726-4a6e-9533-92dae10358ca.html