strickczq 2018-10-23 01:16:57
点我顶贴
收藏
删除
#include <iostream>
#include <string>
using namespace std;
int main()
{
int min, max, n; //最小序号, 最大序号, 位数
int p, q, r; // 三个用于循环的变量
string Jam; // Jam 数字
cin >> min >> max >> n >> Jam; // 输入
Jam[n]= max + 'a'; // 让 Jam 数字结尾加上一个比最大字母大1的字母
for (r = 0; r < 5; r++) // 循环输出5次
for (q = n-1; q >= 0; q--) // 从右往左扫描
if (Jam[q] + 1 < Jam[q+1]) // 找到加1后仍比后一个字母小的序号q
{
Jam[q]++; // 自增
for (p = q + 1; p < n; p++) // 将该字母后面所有字母变为依次递增的字母
Jam[p] = Jam[q] + (p - q);
for (p = 0; p < n; p++) // 输出 Jam 数字(不输出之前加上的字母)
cout << Jam[p];
cout << endl;
break; //跳出循环
}
return 0;
}