2013年11月7日 星期四
[ZJ] a819: 101學年度桃竹苗區資訊學科能力競賽 2.小三資優數學
#include<stdio.h>
#include<iostream>
using namespace std;
int a,b,c,l,n,k;
char s[15];
int main(){
int i,j;
scanf("%d%s%d",&l,s,&k);
sscanf(s,"%d",&n);
if(n==k) printf("%d\n",k);
string r;
for(i=0;i<l-1;i++){
r+=s[i];
sscanf(r.c_str(),"%d",&a);
sscanf(&s[i+1],"%d",&b);
if(a+b==k) printf("%d+%d\n",a,b);
if(a-b==k) printf("%d-%d\n",a,b);
if(a*b==k) printf("%d*%d\n",a,b);
if(b && a%b==0 && a/b==k) printf("%d/%d\n",a,b);
}
string q;
r.clear();
for(i=0;i<l-2;i++){
r+=s[i];
q.clear();
for(j=i+1;j<l-1;j++){
q+=s[j];
sscanf(r.c_str(),"%d",&a);
sscanf(q.c_str(),"%d",&b);
sscanf(&s[j+1],"%d",&c);
if(a+b+c==k) printf("%d+%d+%d\n",a,b,c);
if(a+b-c==k) printf("%d+%d-%d\n",a,b,c);
if(a+b*c==k) printf("%d+%d*%d\n",a,b,c);
if(c && b%c==0 && a+b/c==k) printf("%d+%d/%d\n",a,b,c);
//-
if(a-b+c==k) printf("%d-%d+%d\n",a,b,c);
if(a-b-c==k) printf("%d-%d-%d\n",a,b,c);
if(a-b*c==k) printf("%d-%d*%d\n",a,b,c);
if(c && b%c==0 && a-b/c==k) printf("%d-%d/%d\n",a,b,c);
//*
if(a*b+c==k) printf("%d*%d+%d\n",a,b,c);
if(a*b-c==k) printf("%d*%d-%d\n",a,b,c);
if(a*b*c==k) printf("%d*%d*%d\n",a,b,c);
if(c && (a*b)%c==0 && a*b/c==k) printf("%d*%d/%d\n",a,b,c);
// x
if(b && a%b==0 && a/b+c==k) printf("%d/%d+%d\n",a,b,c);
if(b && a%b==0 && a/b-c==k) printf("%d/%d-%d\n",a,b,c);
if(b && (a*c)%b==0 && a*c/b==k) printf("%d/%d*%d\n",a,b,c);
if(b*c && a%(b*c)==0 && a/(b*c)==k) printf("%d/%d/%d\n",a,b,c);
}
}
}
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言