求解释改程序 不懂-C递归求全排列!求解释程序,不懂

问题描述

C递归求全排列!求解释程序,不懂
#include
#include
void Permutation(char* pStr char* pBegin);

void permutation(char* pStr)

{

Permutation(pStr pStr);

}

void Permutation(char* pStr char* pBegin)

{

if(!pStr || !pBegin)

return;

if(*pBegin == '')  {      printf(""%sn"" pStr);  }  else  {       for(char* pCh = pBegin; *pCh != ''; ++ pCh)       {          // swap pCh and pBegin          char temp = *pCh;          *pCh = *pBegin;          *pBegin = temp;          Permutation(pStr pBegin + 1);            // restore pCh and pBegin          temp = *pCh;          *pCh = *pBegin;          *pBegin = temp;      }  }  

}

int main()
{
char str[] ={'a''b''c''d'''};
permutation(str);
getchar();
return 0;
}

时间: 2024-11-06 12:50:13

求解释改程序 不懂-C递归求全排列!求解释程序,不懂的相关文章

求解释改程序 不懂-为什么会输出两组数据

问题描述 为什么会输出两组数据 #includeint main(){ int n,i,sum; char t; while(scanf("%d",&n)!=EOF) sum=0; for(i=0;i=97&&t<=122) sum=sum+t; else; } printf("%d ",sum); return 0;} 解决方案 不知道你程序要干嘛 但是从你的缩进看,while(scanf("%d",&n)

数据结构 操作系统-我有一个数据结构最短路径程序,求解释里边程序每个步骤的意思

问题描述 我有一个数据结构最短路径程序,求解释里边程序每个步骤的意思 #include #include #define INFINITY 30000 //定义很大的数 #define MAX_VERTEX_NUM 20//最大的边数 using namespace std; typedef struct{ string vexs[18]; int arcs[MAX_VERTEX_NUM][MAX_VERTEX_NUM];//邻接矩阵 int vexnum,arcnum;//图的当前定点数和边数

不使用递归求全排列和组合数

同学遇到的面试问题,大意是M台机器放在N个房间,不使用递归求打印所有情况 解题思路:情况共计N**M种.开始想将所有情况放入数组,填充好数组再逐个打印.随后发现按照填充的思路,不使用大数组也可以实现.思路是加入M=N=3,则27种情况,记i0...i26.0...M个数,0放入i0[0],i1[1],i2[2],i3[0],i4[1],i5[2]...,1放入i0[,i1,i2, 房间0 房间1 房间2 0 1 2 1 2 0 1 2 0 0 2 1 2 0 1 2 1 0 0 2 1 2 0

指针-@C语言大神,这程序谭浩强给的答案看不懂,求解释?

问题描述 @C语言大神,这程序谭浩强给的答案看不懂,求解释? //题目:输出字符串里数字团,以及个数.比如89cy129//就输出89,129,一共2个数.// 问题:后面一大段为啥要复制粘贴前面一大段的代码?//有什么用?求解释.而且运行也不对,求修改!跪谢! include int main() { char str[80],*pstr; int m,i=0,j=0,k=0,digit=0,ndigit=0,e10,a[80],*pa; pstr=&str[0];pa=&a[0]; g

算法 递归 数据结构-求解释代码,添加注释或者画图解释(在网上看到的求组合的递归算法,绕晕头了看不懂,求解释)

问题描述 求解释代码,添加注释或者画图解释(在网上看到的求组合的递归算法,绕晕头了看不懂,求解释) public class Test1 { public static void main(String[] args) { select(2); } private static void select(int k) { char[] result = new char[k]; subselect(0 1 result k); } private static void subselect(int

c语言-C++代码改成C语言代码,没学过C++好多看不懂啊(泪奔······)求大神指点,我用的VC6.0

问题描述 C++代码改成C语言代码,没学过C++好多看不懂啊(泪奔······)求大神指点,我用的VC6.0 代码如下, #include "winsock2.h" #include "Winsnmp.h" #include 这里是string以下都要用 < 和 > 括起来(不知为何不显示=,=) #include vector #include algorithm #include iostream #pragma comment(lib,"

搞不懂-求解释啊~~~ 又不明白了。。

问题描述 求解释啊~~~ 又不明白了.. #include #include main() { int abc; c=0; for(a=100;a<=200;a++) { for(b=2;b<=a-1;b++) if(a%b==0) break; if(a==b) printf(""素数为:%dn""a); c++; } system(""pause""); } break的意思不是跳出循环进行下一步吗? 这样的话

biginteger-Java中n!的代码看不懂啊,求解释

问题描述 Java中n!的代码看不懂啊,求解释 import java.math.BigInteger; import java.util.*; public class Main{ protected static ArrayList table = new ArrayList(); static { table.add(BigInteger.valueOf(1)); } public static synchronized BigInteger factorial(int x) { for

mfc求助-求MFC程序制作,本人初学者,很多都不懂,希望能有大神提供样本参考。

问题描述 求MFC程序制作,本人初学者,很多都不懂,希望能有大神提供样本参考. 摇杆 主动快带动从动块 键盘WD能控制主动块左右移动菜单里面有"绘制轨迹"选项 和 "消除轨迹" 选项 绘制连杆中点的轨迹 消除轨迹 求大神给个样本参考 T.T