解题思路: 如果字符串的第一个字母已经是最大可能的字母退出循环;否则从最后一个字母开始遍历, 如果当前字母已经是最大可能字母, 退出循环; 否则, 当前字母加 1, 该字母之后的每一个字母,依据当前字母的值依次加1。
注意事项:
参考代码:
#include<iostream> #include<algorithm> using namespace std; int s, t, w; char str[26],pre; int main() { cin >> s >> t >> w >> str; for(int i = 0 ; i < 5; i ++){ if (str[0] == 'a' + t - w) break; for(int j = w -1 ; j >= 0; j --){ if(str[j] == 'a' + t - w + j) continue; pre = ++ str[j]; for(int k = j + 1; k < w; k ++){ str[k] = ++ pre; } for(int k = 0; k < w; k ++) cout << str[k]; cout << endl; break; } } return 0; }
0.0分
1 人评分
C语言训练-求1+2!+3!+...+N!的和 (C语言代码)浏览:2498 |
C语言程序设计教程(第三版)课后习题11.8 (C语言代码)浏览:640 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:504 |
C语言训练-求1+2!+3!+...+N!的和 (C语言代码)浏览:821 |
2003年秋浙江省计算机等级考试二级C 编程题(2) (C语言代码)浏览:638 |
DNA (C语言描述,蓝桥杯)浏览:1653 |
printf基础练习2 (C语言代码)浏览:547 |
C语言程序设计教程(第三版)课后习题9.8 (C语言代码)浏览:672 |
C二级辅导-温度转换 (C语言代码)浏览:802 |
模拟计算器 (C语言代码)浏览:2366 |