一串包含小写字母和数字的混合字符串进行n次加一操作。
例:“zz”+1 = “111”、“aa”+1 = “ab”、“az”+1 = “b1”、“a9”+1 = “ba”
#include#include using namespace std; int main() { string str,s;//str包含小写字母和数字 int n;//n次+1 int flag=0;//有进位情况为1 int flag_nums=0;//进位的次数 while( true ) { cin>>str>>n; s = str; if( str=="over" ) return 0; flag_nums=0; for( int i=1; i<=n; i++ ) { flag = 0; flag_nums = 0; for( int j=str.size()-1; j>=0; j-- ) { if( flag==1 || j==str.size()-1 )//flag=1表明有进位情况出现,j=str.size()-1为最后一位加1情况 { if( (int)str[j]+1 > 122 )//'z'+ 1的情况 { flag_nums++; flag = 1; str[j] = '1'; if( flag_nums == str.size() )//有str.size()次进位 则str串增长 例:"zz"+1 ="111" { cout<<"源串为 "< 运行结果zz 15 源串为 zz的第1次+1结果为 111 源串为 zz的第2次+1结果为 112 源串为 zz的第3次+1结果为 113 源串为 zz的第4次+1结果为 114 源串为 zz的第5次+1结果为 115 源串为 zz的第6次+1结果为 116 源串为 zz的第7次+1结果为 117 源串为 zz的第8次+1结果为 118 源串为 zz的第9次+1结果为 119 源串为 zz的第10次+1结果为 11a 源串为 zz的第11次+1结果为 11b 源串为 zz的第12次+1结果为 11c 源串为 zz的第13次+1结果为 11d 源串为 zz的第14次+1结果为 11e 源串为 zz的第15次+1结果为 11f 1x 15 源串为 1x的第1次+1结果为 1y 源串为 1x的第2次+1结果为 1z 源串为 1x的第3次+1结果为 21 源串为 1x的第4次+1结果为 22 源串为 1x的第5次+1结果为 23 源串为 1x的第6次+1结果为 24 源串为 1x的第7次+1结果为 25 源串为 1x的第8次+1结果为 26 源串为 1x的第9次+1结果为 27 源串为 1x的第10次+1结果为 28 源串为 1x的第11次+1结果为 29 源串为 1x的第12次+1结果为 2a 源串为 1x的第13次+1结果为 2b 源串为 1x的第14次+1结果为 2c 源串为 1x的第15次+1结果为 2d over 2 -------------------------------- Process exited after 30.74 seconds with return value 0 请按任意键继续. . .



