全排列permutation问题

参考链接: 字符串全排列算法学习 思路: 一位一位来固定,求后面的全排列,设当前为k位,则让[k,n]位的字符都与第k位进行交换,并且需要保证第k位不重复(代码中用set来实现),然后对于每种情况,递归第k+1位即可。具体过程如下图: 递归的出口,就是只剩一个字符的时候。 代码如下: import

递归 

汉诺塔模板

//汉诺塔 # include <stdio.h> void hanoi ( int n, char a, char b, char c ) { if (n == 1) //只剩一个盘子时 { printf("%c ->

递归 

约瑟夫环

n 个人中每数到 m 出队一人,第 k 次出队人的编号 //约瑟夫环// #include<stdio.h> //返回的是第K次出队的人的编号// int ysfh(int n, int m, int k) { if (k == 1) return (n + m - 1) %

递归