/ Vijos / 讨论 / 问答 /

谁能帮忙看看这题哪里出错了??

很小的一个题,但就是运行不了,真是郁闷!

[问题描述] 列出所有从数字1到N的连续自然数的排列,要求所产生的任一 数字序列中不能出现重复的数字。

输入:N(1

6 条评论

  • @ 2009-08-12 19:54:13

    奇怪了....

  • @ 2009-08-09 20:11:55

    但结果还是不对,一定还有错误

  • @ 2009-08-09 20:10:51

    对,应该是FIND{K+1};

  • @ 2009-08-09 13:40:01

    ...

    你应该写find(k+1);

    进入下一层。。。

  • @ 2009-08-09 11:04:07

    procedure find(k:integer);

    begin

       if k>n then

           begin

             for j:=1 to n do write(a[n],' ');

             writeln;

           end

       else

        for i:=1 to n do

         begin

           flag:=true;

           for q:=1 to k-1 do if a[q]=i then flag:=false;

           if flag=true then begin a[k]:=i; find(k); end;

         end;

    end;

    for q:=1 to k-1

    由于k=1,所以这句话跳过。

    if flag=true then begin a[k]:=i; find(k); end;

    因为flag=true,所以执行find(k),k=1,所以好像这个程序真正执行的只有一条:a[k]=i;

    不知道我说的对不对,仅供参考,谢谢。

  • @ 2009-08-09 10:59:24

    ……………………

    我怎么看怎么像死循环啊!!!

  • 1