主题:帮帮忙
题目描述
木材厂有一些原木,现在想把这些木头切割成一些长度相同的小段木头,需要得到的小段的数目是给定了。当然,我们希望得到的小段越长越好,你的任务是计算能够得到的小段木头的最大长度。木头长度的单位是cm。原木的长度都是正整数,我们要求切割得到的小段木头的长度也要求是正整数。
输入描述
第一行是两个正整数N和K(1 ≤ N ≤ 10000,1 ≤ K ≤ 10000),N是原木的数目,K是需要得到的小段的数目。 接下来的N行,每行有一个1到10000之间的正整数,表示一根原木的长度。
输出描述
输出能够切割得到的小段的最大长度。如果连1 cm长的小段都切不出来,输出"0"。
var
n,k,i,l,jie:integer;
a:array[1..10000] of integer;
s:longint;
begin
readln(n,k);
for i:= 1 to n do begin
readln(a[i]);
s:=s+a[i];
end;
l:=s div k;
while (jie<>k) or (l>0) do begin
jie:=0;
for i:= 1 to n do
jie:=jie+(a[i] div l);
l:=l-1;
end;
writeln(l);
end.
谁帮我找一下错误,总是通不过;
木材厂有一些原木,现在想把这些木头切割成一些长度相同的小段木头,需要得到的小段的数目是给定了。当然,我们希望得到的小段越长越好,你的任务是计算能够得到的小段木头的最大长度。木头长度的单位是cm。原木的长度都是正整数,我们要求切割得到的小段木头的长度也要求是正整数。
输入描述
第一行是两个正整数N和K(1 ≤ N ≤ 10000,1 ≤ K ≤ 10000),N是原木的数目,K是需要得到的小段的数目。 接下来的N行,每行有一个1到10000之间的正整数,表示一根原木的长度。
输出描述
输出能够切割得到的小段的最大长度。如果连1 cm长的小段都切不出来,输出"0"。
var
n,k,i,l,jie:integer;
a:array[1..10000] of integer;
s:longint;
begin
readln(n,k);
for i:= 1 to n do begin
readln(a[i]);
s:=s+a[i];
end;
l:=s div k;
while (jie<>k) or (l>0) do begin
jie:=0;
for i:= 1 to n do
jie:=jie+(a[i] div l);
l:=l-1;
end;
writeln(l);
end.
谁帮我找一下错误,总是通不过;