讨论 / c++版代码
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;

}

查看更多回复
提交回复