首页| 论坛| 消息
主题:分享图论算法源程序集合
superjty发表于 2009-06-24 08:33
设有已知面额的邮票m种,每种有n张.问:用总数不超过n张的邮票进行组合,能组合的邮票面额中可以连续出现面额数最多有多少?例:输入 n:4 m: 3 每种面额1 2 4 输出 14
请大家帮忙看看我的这个程序为什么是201号错误(范围检查错)。
program post;
var
n,m,i,j,mt:integer;
maxl:longint;
a:array[1..100] of integer;
money,max:array[1..255] of integer;
procedure search(k,n,x:longint);
var i:integer;
begin
if (n=0) or (k=0) then exit;
for i:=n downto 0 do
begin
x:=x+a[k]*i;
n:=n-i;
money[x]:=money[x]+1;
search(k-1,n,x);
n:=n+i;
x:=x-a[k]*i;
end;
end;
begin
read(n,m);
for i:=1 to m do
read(a[i]);
search(m,n,0);
mt:=1;
for i:=1 to 255 do
if money[i]0 then max[mt]:=max[mt]+1 else mt:=mt+1;
maxl:=max[1];
for i:=1 to mt do
if max[i]>maxl then maxl:=max[i];
writeln(maxl);
end.
回帖(1):
1楼:没人回答啊

--> 全部回帖(1)»
最新回帖
收藏本帖
发新帖