第二題
生日蠟燭(結果填空)
某君從某年開始每年都舉辦一次生日party,并且每次都要吹熄與年齡相同根數的蠟燭。
現在算起來,他一共吹熄了236根蠟燭。
請問,他從多少歲開始過生日party的?
請填寫他開始過生日party的年齡數。
注意:提交的應該是一個整數,不要填寫任何多余的內容或說明性文字。
分析:
設過生日的歲數是[start, end],則end>start(end==start時,為236,不可能,排除)
package bb;
public class 生日蠟燭 {private static void 易理解版() {// 1.startfor (int start = 1; start <= 100; start++) {// 2.endfor (int end = start + 1; end <= 100; end++) {// 3.[start,end]求歲數之和int sum = 0;for (int i = start; i <= end; i++) {sum += i;}// 4.滿足條件則OKif (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) {易理解版();效率改進版();}
}
星期一(18JavaA2)
標題:星期一
整個20世紀(1901年1月1日至2000年12月31日之間),一共有多少個星期一?
(不要告訴我你不知道今天是星期幾)
注意:需要提交的只是一個整數,不要填寫任何多余的內容或說明文字。
參考答案:5217
方格計數 (18JavaB2)
如圖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
猴子分香蕉(18JavaC)
標題:猴子分香蕉
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++;}}}
}