c#

位置:IT落伍者 >> c# >> 浏览文章

C#用回溯法找出n个自然数中取r个数的全排列


发布日期:2024年03月01日
 
C#用回溯法找出n个自然数中取r个数的全排列

回溯法也称为试探法该方法首先暂时放弃关于问题规模大小的限制并将问题的候选解按某种顺序逐一枚举和检验在回溯法中放弃当前候选解寻找下一个候选解的过程称为回溯

本实例是用回溯法输出n个自然数中以r个数全排列代码如下

publicvoidArrange(intnintr)

inti=j;

strings;

int[]a=newint[n];

a[i]=;

while(true)

{

if((a[i]i)<=(nr+))

{

if(i==(r))

{

s=;

for(j=;j<r;j++)

{

s=s+ConvertToString(a[j])+;

}

//MemoLinesAppend(Trim(s));

ConsoleWriteLine(s);

a[i]=a[i]+;

continue;

}

i=i+;

a[i]=a[i]+;

}

else

{

if(i==)

{

break;

}

i=i;

a[i]=a[i]+;

}

}

               

上一篇:从Visual Basic 6.0到Visual Basic.NET

下一篇:.net如何统计在线人数