Pascal完善程序,剪绳子,二分法2、剪绳子: 有n根长短不一的绳子,要将它们剪成长度相同的n根绳子,并且使它们尽可能长.下面的程序彩二分法. 设:ans为所求长度;min、max分别为ans寻求长度区
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/03 05:35:23
Pascal完善程序,剪绳子,二分法2、剪绳子: 有n根长短不一的绳子,要将它们剪成长度相同的n根绳子,并且使它们尽可能长.下面的程序彩二分法. 设:ans为所求长度;min、max分别为ans寻求长度区
Pascal完善程序,剪绳子,二分法
2、剪绳子:
有n根长短不一的绳子,要将它们剪成长度相同的n根绳子,并且使它们尽可能长.下面的程序彩二分法.
设:ans为所求长度;min、max分别为ans寻求长度区间的左界、右界.
1、将ans定在当前min至max的中间位置.
2、若以ans为长度能够剪出n根绳子,说明ans可能加长,则将min调整为ans,否则说明ans
应当减小,将max调整为ans-1.
反复做1、2两步,直至min与max重合,此时ans即为所求的最大长度. Var n,min,max,i,ans,s:integer; a:array[1..100] of integer; begin
readln(n);
min:=maxint;
max:=1;
for i:=1 to n do
begin
read(a[i]);
if a[i]>max then max:=a[i];
end;
repeat
ans:=
s:=0;
for i:=1 to n do
s:= ;
if then min:=ans
else max:=ans-1;
until
writeln(min);
End.
怎么做!对了加分!
Pascal完善程序,剪绳子,二分法2、剪绳子: 有n根长短不一的绳子,要将它们剪成长度相同的n根绳子,并且使它们尽可能长.下面的程序彩二分法. 设:ans为所求长度;min、max分别为ans寻求长度区
Var n,min,max,i,ans,s:integer;
a:array[1..100] of integer;
begin
readln(n);
min:=maxint;
max:=1;
for i:=1 to n do begin
read(a[i]);
if a[i]>max then max:=a[i];
end;
repeat
ans:=s;
s:=0;
for i:=1 to n do
s:=s+1;
if min