本帖最后由 轻尘一笑 于 2012-7-21 18:44 编辑
老衲来啦
下课回来发现无图无真相,果断上图
代码如下:
public class Tesl1 {
public static void main (String [] args){
double tall=100; //原始高度
int times =10; //下落次数
System.out.println("球从"+tall+"米下落"+times+"次共经过了"+sum(tall,times)+"米");
System.out.println("球从"+tall+"米下落"+times+"次后弹起高度为"+height(tall,times)+"米");
}
/*需求:定义一个方法,求一个球落地N次会共经历了多少米(反弹规则,每次落地反弹原高度的一半)
思路:
明确一: 有结果吗? 有,返回共经过多少米double
明确二: 有未知内容吗?有初始高度double,下落次数int
使用for循环计算出每次下落弹起的高度,然后定义一个变量接收每次高度的累加,循环结束 返回总高度
*/
public static double sum(double height,int times ){
double result =height;//因为第一次下落的高度等于原始高度,从第二次起高度等于原始高度加上本次高度
for(int x=2;x<=times;x++){
height=height/2;
result+=height;
}
return result;
}
/*需求:定义一个方法,求一个求落地第N次后弹起的高度(反弹规则,每次落地反弹原高度的一半)
明确一:有结果吗? 有,返回第N第下落后弹起的高度 double
明确二:有未知内容吗? 有,初始高度double,下落次数int
思路:使用for循环计算出每次弹起的高度,循环结束返回该高度
*/
public static double height(double height,int times){
double result =height; //未下落时高度为原始高度,每次下落弹起的高度为原来的一半
for(int x=1;x<=times;x++){
height=height/2;
result=height;
}
return result;
}
}
运行结果为:
球从100.0米下落10次共经过了199.8046875米
球从100.0米下落10次后弹起高度为0.09765625米
|