假设一个球从任意高度自由落下,每次落地后反跳回原高度的一半; 再落下, 求它在第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
#按比例缩放就好了。