讨论 / 24行AC (C++)
strickczq 2018-10-23 16: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;

}

查看更多回复
提交回复