• Java蓝桥杯02——第二题集锦:生日蜡烛、星期一、方格计数、猴子分香蕉


    第二题

    生日蜡烛(结果填空)

    某君从某年开始每年都举办一次生日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) {
    		易理解版();
    		效率改进版();
    	}
    }
    

    星期一(18JavaA2)

    标题:星期一
    整个20世纪(1901年1月1日至2000年12月31日之间),一共有多少个星期一?
    (不要告诉我你不知道今天是星期几)

    注意:需要提交的只是一个整数,不要填写任何多余的内容或说明文字。


    参考答案:5217

    方格计数 (18JavaB2)

    如图p1.png所示,在二维平面上有无数个1x1的小方格。

    方格计数.png

    我们以某个小方格的一个顶点为圆心画一个半径为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++;
    			}
    		}
    	}
    }
    
  • 相关阅读:
    18种典型算法
    幂法和反幂法
    关于Ubuntu下安装Win8和Win8下安装Ubuntu的注意事项
    静态链接库与动态链接库
    面向对象系列二(封装)
    基于ASP.NET WPF技术及MVP模式实战太平人寿客户管理项目开发(Repository模式)
    不要对终于用户谈云
    cocos2d-x 3.0 创建项目
    Android OpenGL ES 画球体
    设计模式 适配器模式 以手机充电器为例
  • 原文地址:https://www.cnblogs.com/tigerlion/p/11182875.html
Copyright © 2020-2023  润新知