
这道题还算简单。

找到一个可以变动的位,变动后再将其它位对齐,对齐完后输出即可。
#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;
}