为什么只有60分?

P1618 三连击(升级版)

Altria_Pendragon_ @ 2017-10-31 23:15:28

var
a,b,c,s,e,r,i,j:longint;
s1,s2:string;
function cd(a,b,c:longint):boolean;
begin
if (a div 100=0) or (b div 100=0) or (c div 100=0) then exit(false)
else exit(true);
end;
function cf(a,b,c:longint):boolean;
var
ar:array['1'..'9'] of longint;
i:longint;
begin
fillchar(ar,sizeof(ar),0);
str(a,s1);
str(b,s2);
s1:=s1+s2;
str(c,s2);
s1:=s1+s2;
for i:=1 to 9 do
inc(ar[s1[i]]);
for i:=1 to 9 do if (ar[chr(i+48)]<>1) then exit(false);
exit(true);
end;
begin
readln(s,e,r);
j:=0;
for i:=1 to 999 do
begin
a:=i*s; b:=i*e; c:=i*r;
if cf(a,b,c) and cd(a,b,c) then begin writeln(a,' ',b,' ',c); j:=1; end;
end;
if j=0 then writeln('No!!!');
end.

by xhx0809 @ 2017-11-30 20:08:49

代码:

//#include<iostream>
//using namespace std;
//bool bcf(int s)
//{
//    int tong[10]={0};
//    while(s)
//    {
//        int t=s%10;
//        tong[t]++;
//        s/=10;
//    }
//    for(int i=1;i<=9;i++)
//        if(tong[i]!=1)
//            return 0;
//    return 1;
//}
//int main()
//{
//    int a,b,c;
//    bool ansflag=false;
//    cin>>a>>b>>c;
//    for(int i=123;i<=999;i++)
//        if(i%a==0)
//        {
//            int t1=i,t2=i/a*b,t3=i/a*c;
//            if(t1<=999&&t2<=999&&t3<=999)
//            {
//                int s=t1+t2*1000+t3*1000000;
//                if(bcf(s))
//                {
//                    cout<<t1<<" "<<t2<<" "<<t3<<endl;
//                    ansflag=true;
//                }
//            }
//        }
//    if(!ansflag)
//        cout<<"No!!!";
//    return 0;
//}

by _19992146 @ 2018-01-15 19:51:17

@xhx0809 输出No!!!


|