这道题还算简单。
找到一个可以变动的位,变动后再将其它位对齐,对齐完后输出即可。
#include<bits/stdc++.h>
using namespace std;
char num[35];
int main(){
// freopen("count.in","r",stdin);
// freopen("count.out","w",stdout);
int start,end,len;
scanf("%d%d%d",&start,&end,&len);
scanf("%s",num);
for(int i=1;i<=5;i++){//输出5个Jam数字
for(int j=len-1;j>=0;j--){//枚举变动位
int tmp='a'+(end-(len-j));
if(num[j]+1<=tmp){//判断是否可行
num[j]+=1;
for(int k=j+1;k<len;k++){//对齐
num[k]=num[j]+k-j;
}
printf("%s\n",num);
break;
}
}
}
return 0;
}