100分大题

来源:百度知道 编辑:UC知道 时间:2024/05/19 20:14:45
设计程序 在表达式“123456789=a”中左边的适当位置插入运算符“+”“-”或“*”,以使等式成立,列出所有的可能情况。例如单a=100时,123+45-67+8-9=100。
不好意思啊,是用C语言写的,还请各位兄弟姐妹帮帮忙啊。

这是PASCAL写的

type
arr=array[1..10] of longint;

var
a,c:arr;
z:array[1..100] of string;
i,s,j,n:longint;
x:string;

function out(t:longint):boolean;
var
i,l,s,j:longint;
b:array[1..10] of longint;
begin
fillchar(b,sizeof(b),0);
c:=a;
l:=n;
for i:=1 to n do
b[i]:=i;
for i:=1 to n-1 do
begin
if c[i]=3 then
begin
b[i+1]:=b[i]*10+b[i+1];
for j:=i downto 2 do
b[j]:=b[j-1];
for j:=i downto 2 do
c[j]:=c[j-1];
l:=l-1;
end;
end;
s:=b[n-l+1];
for i:=n-l+2 to n do
begin
if c[i-1]=1 then s:=s+b[i];
if c[i-1]=2 then s:=s-b[i];
end;
if (s=a) then exit(true);
exit(false);
end;

procedure make(t:longint);
var
i:longint;
begin
if t=n then
begin
if out(t) then
begin
s:=s+1;
for i:=1 to n-1 do
b