求小球弹起高度

假设一个球从任意高度自由落下,每次落地后反跳回原高度的一半; 再落下, 求它在第5次落地时,共经历多少米?第5次反弹多高?

/**
 * 统计出第5次落地时,共经过多少米?
 * 
 * @param high 球的起始高度
 * @return 英文字母的个数
 */
public static double getJourney(int high)
{
    return 0;
}

/**
 * 统计出第5次反弹多高?
 * 
 * @param high 球的起始高度
 * @return 空格的个数
 */
public static double getTenthHigh(int high)
{
    return 0;
}

输入描述:
输入起始高度,int型
输出描述:
分别输出第5次落地时,共经过多少米第5次反弹多高
示例1
输入

1
输出

2.875
0.03125
第一种中规中矩的做法

package com.neu.test12;

import java.util.Scanner;

public class 求小球落地5次后反弹高度 {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        while(sc.hasNext()){
            double n = Double.parseDouble(sc.nextLine());
            double sum = n;
            double high = n;
            for (int i = 0; i < 1; i++) {
                high = high / 2;
                sum = sum + high * 2;


            }
            System.out.println(sum);
            System.out.println(high/2);
        }

    }

}

第二种,按比例缩放,因为给出了1的数据,所以求n时候的数据等比例缩放即可

import sys

while True:
    try:
        string = sys.stdin.readline()
        number = int(string)
        print 2.875 *  number
        print 0.03125 * number
    except:
        break
#按比例缩放就好了。
点赞