第九题(NOIP2012)
#include<iostream>
#include<string>
using namespace std;
int n, ans, i, j;
string s;
char get(int i) {
if (i < n)
return s[i];
else
return s[i - n];
}
int main() {
cin >> s;
n = s.size();
ans = 0;
for (i = 1; i <= n - 1; i++) {
for (j = 0; j <= n - 1; j++) {
if (get(i + j) < get(ans + j)) {
ans = i;
break;
} else if (get(i + j) > get(ans + j)) {
break;
}
}
}
for (j = 0; j <= n - 1; j++) {
cout << get(ans + j);
}
cout << endl;
return 0;
}
- 【判断题】删除第15行程序,运行结果不会发生变化。
{{ select(1) }}
- 【判断题】将第16行中的i=1改为i=0,运行结果不变。
{{ select(2) }}
- 【判断题】在17,18行中间插入"if (get(i+j)==get(ans+j)) continue;",运行结果不变。
{{ select(3) }}
- 【判断题】将21行的break换成continue,因为这是for语句的最后一句,所以运行结果不变。
{{ select(4) }}
- 【选择题】当输入为ABCDEFG时,输出结果为( )。
{{ select(5) }}
- ABCDEFG
- GFEDCBA
- ACEGFDB
- AGBFCED
- 【选择题】当输入为CBBADADA时,输出结果为( )。
{{ select(6) }}
- ABABCDAD
- ABBCDADA
- ACBBADAD
- ADADACBB