如果发现广告等破坏行为,请尽量将条目恢复到较早的版本而不是把相应内容直接删除,谢谢合作。
URAL/1095
来自"NOCOW"
< URAL
program ural1095; const tail:array[0..6]of integer=(3241,2134,1342,1243,2341,1234,1324); var s:array[0..4]of byte; n,i:integer; c:char; d:byte; x:int64; begin readln(n); for i:=1 to n do begin fillchar(s,sizeof(s),0);x:=0; repeat read(c);d:=ord(c)-48; if d=0 then inc(s[0]) else if (d<5) and (s[d]=0) then s[d]:=1 else x:=x*10+d; until eoln; readln; if x>0 then write(x); write(tail[(x mod 7)*10000 mod 7]); for d:=1 to s[0] do write(0); writeln; end; end.
楼上好像是错的,但我的思路和他是一致的
var c:char; s:string; i,j,x,n,k:longint; b:array[0..9]of longint; base:array[0..6]of longint=(4123,2134,1342,1243,2341,1234,1324); begin readln(n); for k:=1 to n do begin fillchar(b,sizeof(b),0); x:=0; readln(s); for i:=1 to length(s) do inc(b[ord(s[i])-48]); dec(b[1]);dec(b[2]);dec(b[3]);dec(b[4]); for i:=1 to 9 do begin for j:=1 to b[i] do x:=(x*10+i) mod 7; end; x:=(x*10000)mod 7; for i:=1 to 9 do for j:=1 to b[i] do write(i); write(base[x]); for i:=1 to b[0] do write(0); writeln; end; end. From churchill