输入:
9 7 5 7
我输出:
9-7=2
5+7=12
2*12=24
正确输出:
9-7=2
7+5=12
12*2=24
请问这两种有什么区别,Special Judge不应该是判一样的嘛?
dalao求调
#include<bits/stdc++.h>
#define ll long long
#define endl "\n"
using namespace std;
int a[5];
char c[5];
int js(int x,int k,int y){
if(k==1) return x+y;
if(k==2) return abs(x-y);
if(k==3) return x*y;
if(k==4) return (y==0 || x%y || x<y) ? -1e9:x/=y;
}void output(int x,int k,int y){
if(k==1) printf("%d%c%d=%d\n",x,c[k],y,x+y);
if(k==2) printf("%d%c%d=%d\n",max(x,y),c[k],min(x,y),abs(x-y));
if(k==3) printf("%d%c%d=%d\n",x,c[k],y,x*y);
if(k==4) printf("%d%c%d=%d\n",x,c[k],y,x/y);
}
int main(){
for(int i =1;i <= 4;i++){
cin >> a[i];
}c[1]='+';c[2]='-';c[3]='*';c[4]='/';
do{
for(int i = 1;i <= 4;i++){
for(int j = 1;j <= 4;j++){
for(int k = 1;k <= 4;k++){
if(js(js(js(a[1],i,a[2]),j,a[3]),k,a[4]) == 24){
output(a[1],i,a[2]);
output(js(a[1],i,a[2]),j,a[3]);
output(js(js(a[1],i,a[2]),j,a[3]),k,a[4]);
return 0;
}else if(js(js(a[1],i,a[2]),j,js(a[3],k,a[4])) == 24){
output(a[1],i,a[2]);
output(a[3],k,a[4]);
output(js(a[1],i,a[2]),j,js(a[3],k,a[4]));
return 0;
}
}
}
}
}while(next_permutation(a+1,a+5));
cout<<"No answer!";
return 0;
}