赛码网练习——小球的距离

小球下落路径计算

题目描述
小赛和三个小朋友一起玩小球,他们是一种新玩法。他们站在楼房的不同层,假设小赛站的楼层距离地面N米,球从小赛手里自由落下,每次落地后反跳回原高度的一半;再落下,再反跳回原高度的一半。小赛和三个小朋友站在不同的楼层,同时放下手中的小球,当小球全部落到地面不跳时,求4个小球一共经过了多少米?(数字都为整数)
输入
输入4个数字,分别表示四个小球距离地面的高度。所有输入的数字都为整数,范围不能超过整数所能表示的最大值。
样例输入
100 90 80 70
输出
输出为四个小球经过的总长度。
样例输出
996

import java.util.Scanner;

public class Main {
    public static void main(String[] args){
        Scanner s=new Scanner(System.in);
        int a=s.nextInt();
        int b=s.nextInt();
        int c=s.nextInt();
        int d=s.nextInt();
        s.close();
        System.out.println(Distance(a)+Distance(b)+Distance(c)+Distance(d));

    }
    public static int Distance(int n){
        int sum=n;
        while(n>0){
            n/=2;
            sum=n*2+sum;
        }
        return sum;
    }



}

输入的4个数可以用while循环输入

Scanner s=new Scanner();
int total=0;
while(s.hasNext()){
     int n=s.nextInt();
     total+=Distance(n);
     }
System.out.println(total);
s.close();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值