切换到宽版
  • 14439阅读
  • 48回复

递归转非递归 [复制链接]

上一主题 下一主题
离线haiwei
 
只看楼主 正序阅读 0 发表于: 2007-07-02
下面的程序如何转非递归?
给n个数,要求取任意几个数相加得m


var m,n,m2,i,n2:integer;
  a:array[1..10]of integer;
  b:array[1..10]of boolean;
procedure next(m2,k:integer);
begin
  if k>n then
    begin
    if m2=m then
    begin
      inc(n2);
      for i:=1 to n do
        if b then write(a,' ');
      writeln;
    end;
    end
  else
    begin
    next(m2,k+1);
    b[k]:=true;
    next(m2+a[k],k+1);
    b[k]:=false;
    end;
end;
begin
readln(m,n);
for i:=1 to n do
  begin
    read(a);
    b:=false;
  end;
n2:=0;
next(0,1);
writeln('zu shu:',n2);
end.
haiwei
http://user.qzone.qq.com/317048955
离线181818181818
只看该作者 48 发表于: 2007-08-20
都是你的回复
离线haiwei
只看该作者 47 发表于: 2007-07-12
你好能刷
haiwei
http://user.qzone.qq.com/317048955
离线clwxzh57
只看该作者 46 发表于: 2007-07-02
HAIWEI,谢谢.
离线clwxzh57
只看该作者 45 发表于: 2007-07-02
HAIWEI,谢谢.
离线haiwei
只看该作者 44 发表于: 2007-07-02
(因显示有误,所以把程序直接上传)
附件: n数加得m.zip (1 K) 下载次数:14
haiwei
http://user.qzone.qq.com/317048955
离线clwxzh57
只看该作者 43 发表于: 2007-07-02
苍天啊,大地啊,子啊!
离线clwxzh57
只看该作者 42 发表于: 2007-07-02
但……为什么?有什么重要的东东吗?
离线clwxzh57
只看该作者 41 发表于: 2007-07-02
不愧啊。
离线clwxzh57
只看该作者 40 发表于: 2007-07-02
好晕……
快速回复
限100 字节
 
上一个 下一个