sos 哪里错了,快来呀!

├ 测试数据 01:答案正确... 0ms

├ 测试数据 02:答案正确... 0ms

├ 测试数据 03:答案正确... 0ms

├ 测试数据 04:答案正确... 0ms

├ 测试数据 05:答案正确... 0ms

├ 测试数据 06:答案正确... 0ms

├ 测试数据 07:答案错误... ├ 标准行输出 0

 ├ 错误行输出 1

├ 测试数据 08:答案正确... 0ms

├ 测试数据 09:答案错误... ├ 标准行输出 0

 ├ 错误行输出 1

├ 测试数据 10:答案正确... 0ms

Unaccepted 有效得分:80 有效耗时:0ms

var s:string;

a,b:array[1..10] of real;

i,j,k,t:longint;

procedure try(s:char;var a:real);

begin

case s of

'A': a:=1;

'J': a:=11;

'Q': a:=12;

'K': a:=13;

end;

if a=0 then a:=ord(s)-48;

end;

procedure work(n:longint);

var temp:real;

begin

if n=1 then if abs(a[1]-24)=0 then begin writeln('1'); halt; end else exit;

if a[1]=0 then exit;

temp:=a[1];

a[1]:=a[n]+a[1];work(n-1);a[1]:=temp;

a[1]:=a[1]-a[n];work(n-1);a[1]:=temp;

a[1]:=a[n]-a[1];work(n-1);a[1]:=temp;

a[1]:=a[1]*a[n];work(n-1); a[1]:=temp;

if a[n]0 then

begin

a[1]:=a[1] /a[n]; work(n-1); a[1]:=temp;

a[1]:=a[n] /a[1]; work(n-1); a[1]:=temp;

end;

end;

begin

readln(s);

try(s[1],b[1]);

try(s[3],b[2]);

try(s[5],b[3]);

try(s[7],b[4]);

for i:=1 to 4 do

for j:=1 to 4 do

if ij then

for t:=1 to 4 do

if (ti) and (tj) then

for k:=1 to 4 do

if (kt) and(ki) and(kj) then

begin

a[1]:=b[i]; a[2]:=b[j]; a[3]:=b[t]; a[4]:=b[k]; work(4);

end;

writeln('0');

end.

求教大牛,哪里错了?在此先谢谢了

1 条评论

  • @ 2016-12-10 12:45:18

    #include <bits/stdc++.h>
    using namespace std;

    typedef int arr[4];
    bool flag;
    arr d;
    int r[100][100];
    void dfs(int n,arr d)
    {
    if(!flag) {
    int a,b,i,j,k,p,t;
    arr c;
    if (n==1 && d[0]==24) {
    flag=true;
    cout<<1<<endl;
    }
    else
    for (i=0;i<n-1;i++)
    for (j=i+1;j<n;j++){
    a=d[i] ; b= d[j];
    t=0;
    for (k=0;k<n;k++)
    if (k!=i && k!=j) c[t++]=d[k];
    r[4-n][0]=a;
    r[4-n][2]=b;
    r[4-n][3]=-1;

    for ( p=0;p<4;p++){
    switch(p){
    case 0:r[4-n][3]=a+b; break;
    case 1:r[4-n][3]=a-b; break;
    case 2:r[4-n][3]=a*b; break;
    case 3: if (b!=0) r[4-n][3]=a/b;break;
    }
    if (p==3 && b==0) break;
    if (p==3 && a % b!=0) break;
    r[4-n][1]=p;
    c[t]=r[4-n][3];
    dfs(n-1,c);
    }
    }
    }
    }

    int main()
    {
    int i;
    char hehe;
    for (i=0;i<4;i++) {
    cin>>hehe;
    if(hehe=='J') d[i]=11;
    else if(hehe=='Q') d[i]=12;
    else if(hehe=='K') d[i]=13;
    else d[i]=hehe-'0';
    }
    flag=false;
    dfs(4,d);
    if (!flag) cout<<"0"<<endl;
    return 0;
    }

  • 1

信息

ID
1134
难度
8
分类
搜索 点击显示
标签
(无)
递交数
9084
已通过
853
通过率
9%
被复制
7
上传者