考到了函数的递归+回溯,很有意思
俺的做法:
#include <stdio.h>
#include <ctype.h>
#include <string.h>
#include <math.h>
char b[1000];
char c[1000];
char d[1000];
char a[1000];
char f[1000];
void change(char a[1000],int n);
int main()
{
int n;
gets(a);
scanf("%d",&n);
change(a,n);
printf("%s\n",d);
return 0;
}
void change(char a[1000],int n)
{
int k,x=0,y=0,z=0,w=0,l=0;
k=strlen(a);
int i,j;
for(i=0; i<k/2; i++)
{
b[x]=a[i];
x++;
}
b[x]='\0';
for(j=i; j<k; j++)
{
c[y]=a[j];
y++;
}
c[y]='\0';
for(int q=0; q<k; q++)
{
if(q%2==0)
{
d[z]=b[w];
z++;
w++;
}
else
{
d[z]=c[l];
z++;
l++;
}
}
d[z]='\0';
if(n!=1)
{
change(d,n-1);
}
}
标签:int,change,void,洗牌,char,CP1067,include,模拟,1000
From: https://www.cnblogs.com/harumakigohan686/p/17052004.html