bool g_Increase=false;
char *Increase(char *s)
{
g_Increase=false;
if(s==NULL)
return NULL;
int len=strlen(s);
if(len==1)
return s;
int i=len-2;
while(i>=0&&s[i]>=s[i+1])
i--;
if(i<0)
{
return s;
}
char key=s[i];
int j;
for(j=i+1;j<len&&s[j]>key;j++);
if(j==len)
{
swap(s[i],s[j-1]);
j=len-1;
}
else
{
j-=1;
swap(s[i],s[j]);
}
i++;
while(i<j)
{
swap(s[i],s[j]);
i++;
j--;
}
g_Increase=true;
return s;
}
void main()
{
char s[6]={'1','3','5','7','9','\0'};
while(true)
{
Increase(s);
if(g_Increase)
{
/* for(int i=0;i<6;i++)
s[i]=s[i]+48;*/
cout<<s<<endl;
}
else
break;
}
system("pause");
}
转载于:https://www.cnblogs.com/dyc0113/p/3208938.html