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个未知数,不好求解,每一个表达式,分为两个:

1648799-20190714010915815-55975607.png

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++;
            }
        }
    }
}

转载于:https://www.cnblogs.com/tigerlion/p/11182875.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值