首页 > 代码库 > 全排列
全排列
一种全排列是将n个数字放入n个位置里,一种是n个位置上任意位置都可以取0,1,2,...,m,位置之间没有约束
#include <iostream>using namespace std;void permutation(char *pStr, char *pBegin, int &count){ if (*pBegin == ‘\0‘){ printf("%s\t", pStr); count++; }else{ for (char *pCh = pBegin; *pCh != ‘\0‘; ++pCh){ char temp1 = *pCh; *pCh = *pBegin; *pBegin = temp1; permutation(pStr, pBegin + 1,count); temp1 = *pCh; *pCh = *pBegin; *pBegin = temp1; } }}int main(){ char pS[] = "123456"; int count = 0; permutation(pS, pS, count); printf("%d", count); system("pause");}#include <iostream>using namespace std;void permutation(char *pStr, char *pBegin, int &count){ if (*pBegin == ‘\0‘){ printf("%s\t", pStr); count++; }else{ for (int i = 0; i < 10;i++){ *pBegin = i + ‘0‘; permutation(pStr, pBegin + 1,count); } } }int main(){ const int n = 3; int count = 0; char *pStr = new char[n+1]; pStr[n] = ‘\0‘; pStr[0] = pStr[1] = pStr[2] = ‘0‘; permutation(pStr, pStr, count); printf("%d\n", count); delete[]pStr; system("pause");}
全排列
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。