Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
Re:虽然没过,早上写的代码太烂了,现在用string类来做,实在爽啊。。简洁多了。。。In Reply To:虽然没过,早上写的代码太烂了,现在用string类来做,实在爽啊。。简洁多了。。。 Posted by:D10001280 at 2010-12-04 17:07:18 > > #include <string> > #include <cmath> > #include <stdio.h> > #include <stdlib.h> > #include <iostream> > using namespace std; > > #define eps 1e-8 > #define DOUBLEMAX 100000000000000.0 > #define is_zero(x) \ > (fabs(x) < eps) > #define is_eq(a,b) \ > (is_zero(fabs(a-b))) > > #define module(a,b,ch,stra,strb,fun) \ > t=Q(a,b,ch,&flg); \ > if(flg)return 0; \ > strt='('+stra+ch+strb+')'; \ > if(fun)return 1 > > string res; > > inline double Q(double a,double b,char c,int *flg) > { > switch(c){ > case '+':return a+b; > case '-':return a-b; > case '*':return a*b; > case '/': > if(is_zero(b))*flg=1; > else return a/b; > } > return DOUBLEMAX; > } > > int f2(double a,double b,string stra,string strb,char c) > { > double t; > int flg=0; > string strt; > > t=Q(a,b,c,&flg); > if(flg)return 0; > if(is_eq(t,24.0)){ > res= stra+c+strb; > return 1; > } > > return 0; > } > int f3(double a,double b,double c, > string stra,string strb,string strc, > char c1,char c2) > { > double t; > int flg=0; > string strt; > > //c1 > module(a,b,c1,stra,strb,f2(t,c,strt,strc,c2)); > > //c2 > module(b,c,c2,strb,strc,f2(a,t,stra,strt,c1)); > > return 0; > } > int f4(double a,double b,double c,double d, > string stra,string strb,string strc, > string strd,char c1,char c2,char c3) > { > double t; > int flg=0; > string strt; > //c1 > module(a,b,c1,stra,strb,f3(t,c,d,strt,strc,strd,c2,c3)); > > //c2 > module(b,c,c2,strb,strc,f3(a,t,d,stra,strt,strd,c1,c3)); > > //c3 > module(c,d,c3,strc,strd,f3(a,b,t,stra,strb,strt,c1,c2)); > > return 0; > } > > void itoa(int num,char *r) > { > if(num<10){r[0]= char(num+'0');r[1]=0;} > else { > r[0]=char(num/10 +'0'); > r[1]=char(num%10 +'0'); > r[2]=0; > } > } > int main() > { > > int a,b,c,d; > char ca[3],cb[3],cc[3],cd[3]; > string sa,sb,sc,sd; > scanf("%d%d%d%d",&a,&b,&c,&d); > itoa(a,ca); > itoa(b,cb); > itoa(c,cc); > itoa(d,cd); > > sa=ca; > sb=cb; > sc=cc; > sd=cd; > > char sig[4]={'+','-','*','/'}; > char c1,c2,c3; > int s1,s2,s3; > for(s1=0;s1<4;s1++){ > c1=sig[s1]; > for(s2=0;s2<4;s2++){ > c2=sig[s2]; > for(s3=0;s3<4;s3++){ > c3=sig[s3]; > if(f4(a,b,c,d,sa,sb,sc,sd, > c1,c2,c3)){ > printf("%s",res.c_str()); > return 0; > } > } > } > } > > return 0; > } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator