解题代码部分来自网友,如果有不对的地方,欢迎各位大佬评论
题目1、武功秘籍小明到X山洞探险,捡到一本有破损的武功秘籍(2000多页!当然是伪造的)。他注意到:书的第10页和第11页在同一张纸上,但第11页和第12页不在同一张纸上。
小明只想练习该书的第81页到第92页的武功,又不想带着整本书。请问他至少要撕下多少张纸带走?
这是个整数,请通过浏览器提交该数字,不要填写任何多余的内容。
【解析】:带走的页数(80,81)(82,83)(84,85)(86,87)(88,89)(90,91)(92,93)
【答案】:7
题目2、切面条一根高筋拉面,中间切一刀,可以得到2根面条。
如果先对折1次,中间切一刀,可以得到3根面条。
如果连续对折2次,中间切一刀,可以得到5根面条。
那么,连续对折10次,中间切一刀,会得到多少面条呢?
答案是个整数,请通过浏览器提交答案。不要填写任何多余的内容。
【解析】:可以拿张纸自己撕一下
n 0 1 2 3 4 …
sum 2 3 5 9 17 …
每次相加的都是2的整数次幂。
【答案】1025
【代码】:
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner cin = new Scanner(System.in);
int n = cin.nextInt();
int sum = 2;
for (int i = 1; i <= n; i++)
sum += Math.pow(2, i - 1);
System.out.println(sum);
}
}
题目3、猜字母
把abcd…s共19个字母组成的序列重复拼接106次,得到长度为2014的串。
接下来删除第1个字母(即开头的字母a),以及第3个,第5个等所有奇数位置的字母。
得到的新串再进行删除奇数位置字母的动作。如此下去,最后只剩下一个字母,请写出该字母。
答案是一个小写字母,请通过浏览器提交答案。不要填写任何多余的内容。
【解析】:先将2014个字符放到char类型的数组中,将序列中偶数位置的数放在数组前面,直到记录的长度为1,输出序列中第一个数即为答案。
【答案】:q
【代码】:
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner cin = new Scanner(System.in);
String s = "abcdefghijklmnopqrs";
String ss = "";
for (int i = 1; i <= 106; i++) {
ss += s;
}
char[] x = ss.toCharArray();
int length=x.length;
while (length != 1) {
int k = 0;
for (int i = 0; i < length; i++) {//i从0开始i为偶数时原序列为奇数
if (i % 2 != 0)//原序列为偶数
x[k++] &#