第九届蓝桥杯省赛JavaC组(1)

1.猴子分香蕉

5只猴子是好朋友,在海边的椰子树上睡着了。这期间,有商船把一大堆香蕉忘记在沙滩上离去。
第1只猴子醒来,把香蕉均分成5堆,还剩下1个,就吃掉并把自己的一份藏起来继续睡觉。
第2只猴子醒来,重新把香蕉均分成5堆,还剩下2个,就吃掉并把自己的一份藏起来继续睡觉。
第3只猴子醒来,重新把香蕉均分成5堆,还剩下3个,就吃掉并把自己的一份藏起来继续睡觉。
第4只猴子醒来,重新把香蕉均分成5堆,还剩下4个,就吃掉并把自己的一份藏起来继续睡觉。
第5只猴子醒来,重新把香蕉均分成5堆,哈哈,正好不剩!
请计算一开始最少有多少个香蕉。

public class demo5 {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        for (int i = 1;; i++) {
            int sum=i;
            if (sum%5==1) {
                sum=sum-1-sum/5;
                if (sum%5==2) {
                    sum=sum-2-sum/5;
                    if (sum%5==3) {
                        sum=sum-3-sum/5;
                        if (sum%5==4) {
                            sum=sum-4-sum/5;
                            if (sum%5==0&&sum!=0) {
                                System.out.println(i);
                                break;
                            }
                        }
                    }
                }
            }
        }

    }

}

题解:

把香蕉数量设为x,由此得出第一只猴子为x%5==1,以此类推,用if写出,如果匹配,则

x-1-x/5=x,以此类推,最后香蕉数量不得为0,剩下的也能%5==0(倒推)。

2.哪天返回

小明被不明势力劫持。后被扔到x星站再无问津。小明得知每天都有飞船飞往地球,但需要108元的船票,而他却身无分文。
他决定在x星战打工。好心的老板答应包食宿,第1天给他1元钱。
并且,以后的每一天都比前一天多2元钱,直到他有足够的钱买票。
请计算一下,小明在第几天就能凑够108元,返回地球。

 public class demo {
    public static void main(String[] args) {
        int an = 1;
        int sn = 0;
        int n=0;
        for (n = 0; sn < 108; n++) {
            sn += an;
            an += 2;
        }
       System.out.println(n);
    }
}

3.第几个幸运数

到x星球旅行的游客都被发给一个整数,作为游客编号。x星的国王有个怪癖,他只喜欢数字3,5和7。
国王规定,游客的编号如果只含有因子:3,5,7,就可以获得一份奖品。
我们来看前10个幸运数字是:3 5 7 9 15 21 25 27 35 45
因而第11个幸运数字是:49
小明领到了一个幸运数字 59084709587505,他去领奖的时候,人家要求他准确地说出这是第几个幸运数字,否则领不到奖品。
请你帮小明计算一下,59084709587505是第几个幸运数字。


public class demo5 {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        for (int i = 1;; i++) {
            int sum=i;
            if (sum%5==1) {
                sum=sum-1-sum/5;
                if (sum%5==2) {
                    sum=sum-2-sum/5;
                    if (sum%5==3) {
                        sum=sum-3-sum/5;
                        if (sum%5==4) {
                            sum=sum-4-sum/5;
                            if (sum%5==0&&sum!=0) {
                                System.out.println(i);
                                break;
                            }
                        }
                    }
                }
            }
        }

    }

}

题解:

题意为能被3,5,7整除就可以了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值