常用算法(C#):|常用算法(C#): 用回溯法找出 n 个自然数中取 r 个数的全排列
using System;
using System.Collections.Generic;
using System.Text;
namespace ExArrange
{
class Arrange
{
public void Arrange(int n, int r)
{
int i = 0, j;
string s;
int[] a = new int[n];
a[i] = 1;
while (true)
{
if ((a[i] - i) <= (n - r + 1))
{
if (i == (r - 1))
{
s = "";
for (j = 0;
j < r;
j++)
{
s = s + Convert.ToString(a[j]) + ",";
}
// Memo1.Lines.Append(Trim(s));
Console.WriteLine(s);
a[i] = a[i] + 1;
continue;
}
i = i + 1;
a[i] = a[i - 1] + 1;
}
else
{
if (i == 0)
{
break;
}
i = i - 1;
a[i] = a[i] + 1;
}
【常用算法(C#):|常用算法(C#): 用回溯法找出 n 个自然数中取 r 个数的全排列】}
}
static void Main(string[] args)
{
Ex03_19 e = new Ex03_19();
e.Arrange(6, 3);
}
}
}
推荐阅读
- Docker应用:容器间通信与Mariadb数据库主从复制
- JS中的各种宽高度定义及其应用
- 由浅入深理解AOP
- 【译】20个更有效地使用谷歌搜索的技巧
- 涉毒患者(新诗)
- 参保人员因患病来不及到指定的医疗机构就医,能否报销医疗费用()
- mybatisplus如何在xml的连表查询中使用queryWrapper
- MybatisPlus|MybatisPlus LambdaQueryWrapper使用int默认值的坑及解决
- MybatisPlus使用queryWrapper如何实现复杂查询
- 画解算法(1.|画解算法:1. 两数之和)