抗日地雷战最强兵种:pascal如何用数组0,1数据判断

来源:百度文库 编辑:杭州交通信息网 时间:2024/04/30 09:25:09
例12-2 一根29cm长的赤字,只允许在上面刻7个刻度,要能用它量1~29cm的各种长度。试问这根尺的刻度应该怎样选择?

program p12_2;
const n=29;m=1;
var a:array[1..7] of integer;
b:array[1..n] of 0..1;
i,j:integer;
begin
a[1]:=m;
for a[2]:=2 to n-7 do
for a[3]:=a[2]+1 to n-6do
for a[4]:=a[3]+1 to n-5 do
for a[5]:=a[4]+1 to n-4 do
for a[6]:=a[5]+1 to n-3 do
for a[7]:=a[6]+1 to n-2 do
begin
for i:=1 to 29 do b:=0;
for i:=1 to 7 do
begin
b[a]:=1;b[n-a]:=1;b[n]:=1; {为什么将b[x]赋值1?是否可以理
for j:=i+1 to 7 do b[abs(a[j]-a)]:=1 解为true。句义:可测量到}
end;
j:=0;
for i:=1 to n do j:=j+b;
if j=n then begin
for i:=1 to 7 do write(a:4);
writeln;
end;
end;
end.

运行程序的结果
1 2 14 18 21 24 27
1 4 10 17 22 24 27

b[n]=1表示N这个刻度可以取到