???.如何???
(第一章的,没做出来)
网上找了一个。道理明白,代码还没太看懂。
#include<iostream>
#include<string>
using namespace std;
void build(char str[],int n);
void main()
{
char v[5] = "abcd";
build(v,4);
}
void build(char str[],int n)
{
if(n==0)
{
cout<<str;
cout<<endl;
}
else
{
build(str,n-1);
char newStr[5]={' '};
strcpy(newStr,str);
newStr[n-1]=' ';
build(newStr,n-1);
}
}
#include<iostream>
using namespace std;
void Set(char*, int, int);
void move(char*, int, int);
int main(){
char a[5] = {'a','b','c','d','e'};
Set(a,0,5);
system("pause");
return 0;
}
void Set(char *a, int l, int m){
static int n=m, f=l;
if(l == m)
for(int j=0; j<2; j++,l--){
cout<<"{ ";
for(int i=f; i<l; i++)
cout<<a[i];
cout<<" }\n";
}
else
for(int i=0; i<n-l; i++){
Set(a,l+1,m-i);
move(a,l,n);
}
}
void move(char *a, int m, int n){
char tmp = a[m];
for(int i=m; i<n-1; i++)
a[i] = a[i+1];
a[n-1] = tmp;
}[/CODE]
没仔细的试,不想再想了