回 帖 发 新 帖 刷新版面

主题:请教Matodied,请教007bond!

密码:1 2 3 4 5 6 7 8 9
在空格处填入适当的'+'或'-'使得数等于输入的X
例如:X=182
     123+45+6+7-8+9
输入X后,打印所有的可能性!

回复列表 (共11个回复)

11 楼

var x,y:longint;
a:array[1..8] of integer;
b:array[-1..1] of char;
c:array[1..8] of longint;
d:array[1..8] of integer;
j,p,q:integer;
begin
readln(x);
for a[1]:=-1 to 1 do
for a[2]:=-1 to 1 do
for a[3]:=-1 to 1 do
for a[4]:=-1 to 1 do
for a[5]:=-1 to 1 do
for a[6]:=-1 to 1 do
for a[7]:=-1 to 1 do
for a[8]:=-1 to 1 do
begin
c[1]:=1;p:=1;
for j:=2 to 9 do
begin
if a[j-1]<>0 then begin p:=p+1;c[p]:=j;d[p]:=a[j-1];end else c[p]:=c[p]*10+j;
end;y:=c[1];
for j:=2 to p do y:=y+c[j]*d[j];
if y=x then
begin
write(1);for j:=1 to 8 do
begin
if a[j]=1 then write('+');
if a[j]=-1 then write('-');
write(j+1);
end;
writeln;
end;
end;
end.

我来回复

您尚未登录,请登录后再回复。点此登录或注册