题意:给出一个整数N,每次可以移动2个相邻数位上的数字,最多移动K次,得到一个新的整数。
求这个新的整数的最大值是多少。
分析如图:
代码如下:
#include <iostream>
#include <string>
#include <string.h>
using namespace std;
int main()
{
char s[20] ;
int k ;
while(cin >> s >> k) {
int len = strlen(s) ;
for(int j = 0 ; j < len && k ; j++) {
int t = j ;
for(int i = j + 1 , ii = 0; i < len && ii < k ; i++,ii++) {
if(s[t] < s[i])
t = i ;
}
for(int i = t ; i > j ;i--) {
char t = s[i] ;
s[i] = s[i-1] ;
s[i-1] = t ;
k-- ;
}
}
cout << s << endl ;
}
return 0;
}