wondering 2013-07-16 21:49:00
点我顶贴
收藏
删除
#include<iostream>
using namespace std;
int main()
{
// freopen("1.txt","r",stdin);
int s,t,w;
char c[28];
cin>>s>>t>>w;
// cin.getline(c,w+1);
cin>>c;
char now[28];
int ncount=0;//直到输出5个数为止
int i;
int flag=0;
//如果最后一位对应的数字<t, 则最后一位加1,得到一个紧接的数
//否则的话,查看前一位,如果前一位能往上进,则进前一位,并把后面每位依次+1
//用最新生成的字符串覆盖原来的字符串即可!!!关键点在这!!!
int j=0;//j表示向前进j位
for(;;)
{
while(c[w-1-j]-'a'+1<t-j)
{
for(i=0;i<w-j-1;i++)
{
now[i]=c[i];
}
now[i]=c[i]+1;
i++;
for(;i<w;i++)
{
now[i]=now[i-1]+1;
}
for(i=0;i<w;i++)
cout<<now[i];
cout<<endl;
ncount++;
flag=1;
if(ncount==5)
{
return 0;
}
//用最新生成的字符串覆盖原来的字符串
if(flag==1)
{
for(i=0;i<w;i++)
{
c[i]=now[i];
}
j=0;
}
}
j++;
if(j==w)
return 0;
}
return 0;
}