某君从某年开始每年都举办一次生日party,并且每次都要吹熄与年龄相同根数的蜡烛。
现在算起来,他一共吹熄了236根蜡烛。
请问,他从多少岁开始过生日party的?
请填写他开始过生日party的年龄数。
注意:提交的应该是一个整数,不要填写任何多余的内容或说明性文字。
分析:
设过生日的岁数是[start, end],则end>start(end==start时,为236,不可能,排除)
package bb; public class 生日蜡烛 { private static void 易理解版() { // 1.start for (int start = 1; start <= 100; start++) { // 2.end for (int end = start + 1; end <= 100; end++) { // 3.[start,end]求岁数之和 int sum = 0; for (int i = start; i <= end; i++) { sum += i; } // 4.满足条件则OK if (sum == 236) { System.out.println("start=" + start + ",end=" + end); } } } } private static void 效率改进版() { for (int start = 1; start <= 100; start++) { int sum = 0; // 把end省了 for (int i = start; i <= 100; i++) { sum += i; if (sum == 236) { System.out.println("start=" + start + ",end=" + i); } } } } public static void main(String[] args) { 易理解版(); 效率改进版(); } }
标题:星期一
整个20世纪(1901年1月1日至2000年12月31日之间),一共有多少个星期一?
(不要告诉我你不知道今天是星期几)
注意:需要提交的只是一个整数,不要填写任何多余的内容或说明文字。
参考答案:5217
如图p1.png所示,在二维平面上有无数个1x1的小方格。
我们以某个小方格的一个顶点为圆心画一个半径为1000的圆。
你能计算出这个圆里有多少个完整的小方格吗?
注意:需要提交的是一个整数,不要填写任何多余内容。
package bb; // 判断第一象限中的各顶点(x,y),只要在半径以内,就计数 public class 方格计数 { public static void main(String[] args) { int r = 1000; int count = 0; // x、y必须大于0,否则会被计数 for (int x = 1; x <= r; x++) { for (int y = 1; y <= r; y++) { if ((x * x + y * y) <= r * r) { count++; } } } System.out.println(count * 4); } }
参考答案:3137548
标题:猴子分香蕉
5只猴子是好朋友,在海边的椰子树上睡着了。这期间,有商船把一大堆香蕉忘记在沙滩上离去。
第1只猴子醒来,把香蕉均分成5堆,还剩下1个,就吃掉并把自己的一份藏起来继续睡觉。
第2只猴子醒来,重新把香蕉均分成5堆,还剩下2个,就吃掉并把自己的一份藏起来继续睡觉。
第3只猴子醒来,重新把香蕉均分成5堆,还剩下3个,就吃掉并把自己的一份藏起来继续睡觉。
第4只猴子醒来,重新把香蕉均分成5堆,还剩下4个,就吃掉并把自己的一份藏起来继续睡觉。
第5只猴子醒来,重新把香蕉均分成5堆,哈哈,正好不剩!
请计算一开始最少有多少个香蕉。
需要提交的是一个整数,不要填写任何多余的内容。
思路:
设总数为x,第一次分,每堆为a,以次往后是b,c,d,e。
原始公式有5个表达式、6个未知数,不好求解,每一个表达式,分为两个:
package bb; public class 猴子分香蕉 { public static void main(String[] args) { { int x = 1; while (true) { if (x % 5 == 1) { int x2 = 4 * (x - 1) / 5; if (x2 % 5 == 2) { int x3 = 4 * (x2 - 2) / 5; if (x3 % 5 == 3) { int x4 = 4 * (x3 - 3) / 5; if (x4 % 5 == 4) { int dx5 = 4 * (x4 - 4) / 5; if (dx5 % 5 == 0) { System.out.println(x); if (x > 10000) break; } } } } } x++; } } } }