一、问题
把abcd...s共19个字母组成的序列重复拼接106次,得到长度为2014的串。
接下来删除第1个字母(即开头的字母a),以及第3个,第5个等所有奇数位置的字母。 得到的新串再进行删除奇数位置字母的动作。如此下去,最后只剩下一个字母,请写出该字母。
答案是一个小写字母,请通过浏览器提交答案。不要填写任何多余的内容。
二、代码
public class Main {
public static void main(String[] args) {
String s = "abcdefghijklmnopqrs";
for (int i = 0; i < 105; i++)
s += "abcdefghijklmnopqrs";
char a[] = s.toCharArray();
for (int i = 0; i < a.length; i++) {
if (pow(2, i) <= a.length && pow(2, i + 1) > a.length) {
System.out.println("第" + pow(2, i) + "位\n留下:" + a[pow(2, i) - 1]);
break;
}
}
}
private static int pow(int n, int m) {
int sum = 1;
for (int i = 0; i < m; i++) {
sum *= n;
}
return sum;
}
}
三、截图