标题:武功秘籍
小明到X山洞探险,捡到一本有破损的武功秘籍(2000多页!当然是伪造的)。他注意到:书的第10页和第11页在同一张纸上,但第11页和第12页不在同一张纸上。
小明只想练习该书的第81页到第92页的武功,又不想带着整本书。请问他至少要撕下多少张纸带走?
这是个整数,请通过浏览器提交该数字,不要填写任何多余的内容。
import java.util.Scanner; public class Main{ public static void main(String[] args) { Scanner in=new Scanner(System.in); int a=in.nextInt(); //起始页 int b=in.nextInt(); //终止页 if(a%2==1&&b%2==1) { //奇数开始,奇数结束 System.out.println((b-a)/2+1); } if(a%2==1&&b%2==0) { //奇数开始,偶数结束 System.out.println((b-a+1)/2+1); } if(a%2==0&&b%2==1) { //偶数开始,奇数结束 System.out.println((b-a+1)/2); } if(a%2==0&&b%2==0) { //偶数开始,偶数结束 System.out.println((b-a)/2+1); } } }
答案:7
标题:切面条
一根高筋拉面,中间切一刀,可以得到2根面条。
如果先对折1次,中间切一刀,可以得到3根面条。
如果连续对折2次,中间切一刀,可以得到5根面条。
那么,连续对折10次,中间切一刀,会得到多少面条呢?
答案是个整数,请通过浏览器提交答案。不要填写任何多余的内容。
【解析】
对折0次,得到2根;
对折1次,得到2 * 2 - 1 = 3
对折2次,得到3 * 2 - 1 = 5
对折3次,得到5 * 2 - 1 = 9
对折4次,得到9 * 2 - 1 = 17
对折5次,得到17 * 2 - 1 = 33
对折6次,得到33 * 2 - 1 = 65
对折7次,得到65 * 2 - 1 = 129
对折8次,得到129 * 2 - 1 = 257
对折9次,得到257 * 2 - 1 = 513
对折10次,得到513 * 2 - 1 = 1025
public class Main{ public static int F(int n) { if(n==0) return 2; return 2*F(n-1)-1; } public static void main(String[] args) { System.out.println("对折10次得到"+Main.F(10)+"根面条"); } }
答案:1025
标题:猜字母
把abcd...s共19个字母组成的序列重复拼接106次,得到长度为2014的串。
接下来删除第1个字母(即开头的字母a),以及第3个,第5个等所有奇数位置的字母。
得到的新串再进行删除奇数位置字母的动作。如此下去,最后只剩下一个字母,请写出该字母。
答案是一个小写字母,请通过浏览器提交答案。不要填写任何多余的内容。
public class Main{ public static void main(String[] args) { char[] a = new char[2014]; int index = 0; for (int i = 0; i < 106; i++) { for (int j = 0; j < 19; j++) { a[index++] = (char) ('a' + j); } } // for (int i = 0; i < 2014; i++) { // System.out.print(a[i] + " "); // } int len = 2014; while (len != 1) { int k = 0; for (int i = 1; i < len; i += 2) { a[k++] = a[i]; } len = k; } System.out.println(a[0]); } }
答案:q