呵呵
前两天看了一篇文章,和你的问题类似,不过是具体化了,用c语言写的
你自己来修改一下把
main()
{int a[13],num,i,j,k;
 i=0;
 for(num=13;num!=0;num--)
 { for(j=0;j<5;j++)
     {i=(i==13)?1:i+1;
      comp:
      for(k=13-num;k>0;k--)
{if(a[k-1]==i)
   {i=(i==13)?1:i+1;
    goto comp;
   }
}
      }
   a[13-num]=i;
  }
 for(i=0;i<13;i++)
   {if(i%5==0)printf("\n");
    printf("a[%2d]=%-5d",i,a[i]);
   }
}

解决方案 »

  1.   

    http://www.20cn.net/cgi-bin/club/scripts/club.pl?key=pxlvQDpPUKRC
      

  2.   

    person:array[1..10000] of boolean;
    i,j:integer;for i:=1 to m do  person[i]:=true;     
    i:=0;j:=0;
    repeat
     inc(i);
     inc(j);
     if (i<=m) and (i mod n=0) 
      then 
       begin  
        if person[j] then person[j]:=false; print{输出}; end;
         else  dec(i);   
        if i=m then i:=0; 
        if j=m then j:=0;               
       end;             
    until {person 全部为假};