帮助张三计算还需要多少分钟才能乘电梯到达楼上

题目描述:张三学校教学楼的电梯前排了很多人,他的前面有n个人在等电梯。
* 电梯每次可以乘坐12人,每次上下需要的时间为4分钟(上需要2分钟,下需要2分钟)。
* 请帮助张三计算还需要多少分钟才能乘电梯到达楼上。(假设最初电梯在1层)
* 思路分析:
*
前面排队小于12,张三第一波就能上去。前面排队大于等于12,小于24,张三第二波才能上去。前面排队大于等于24,小于36,张三第三波能上去。

如果张三前面的人数n<12,则不用判断是否整除12,如果张三前面的人数n>12,判断张三前面的人数n是否能整除12?能整除意味着什么?不能整除意味着什么?
n=24,意味着整除12后得到2,张三需要第三波上去。

想办法构建循环,i应该小于某个临界值-->找出n和12的关系 比如n=20000 最多循环次数应该是20000/12+1  n%12一定小于12 即最多循环 n/12+1次

上去一次2分钟,下来一次2分钟
if(n<12*1){
第一波 2*1min
}else if(n>=12&&n<12*2){
第二波 2*3min 2*(2i-1)=2*(2*2-1)=2*(4-1)=2*3=6
}else if(n>=24&& n<12*3){
第三波 2*5min  2*(2*3-1)=2*5=10
}
...
第四波 2*7min

第几波跟12乘的数字是一样的
i=0

第一波输入12的话,n%12==0,下面这个循环进不去。得让循环进得去。
for(int i=0;i<=n%12;i++){
if(n>=12*i&&n<12*(i+1)){
if(i==1){
2min
}else{
4*(i+2)min
}

}
}

int h = (n+1) % 12 == 0 ? n / 12 : n / 12 + 1;  n=24的时候,25%12是不等于0的,就是最多循环24/12+1=3次

在这里再分析一下,可以判断张三前面的人数n加上张三本身能否整除12,如果可以整除,则循环次数就是(n+1)/12,不能整除就是(n+1)/12+1
public class LearnText12 {
    public static void main(String[] args) {
        System.out.println("请输入一个数字n:");
        Scanner scanner = new Scanner(System.in);
        while (scanner.hasNextLine()) {
            String str = scanner.nextLine();
            Integer n = Integer.valueOf(str).intValue();
            int h = (n+1) % 12 == 0 ? n / 12 : n / 12 + 1;
            for (int i = 1; i <= h; i++) {
                //第一次循环,在这里特殊处理即可。
                if (n < 12 && i == 1) {
                    System.out.println("张三计算还需要2min才能乘电梯到达楼上");
                } else {
                    if (n >= 12 * (i-1) && n < 12 * i) {
                        System.out.println("张三计算还需要" + 2 * (2*i-1) + "min才能乘电梯到达楼上");
                    }
                }
            }
        }
        scanner.close();
    }
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值