黑马程序员技术交流社区
标题:
一个小题 ,求更多思路
[打印本页]
作者:
新鲜感
时间:
2014-12-24 21:02
标题:
一个小题 ,求更多思路
/*
题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;
再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?
思路: 第一次100米高度 第一次经过100米
第二次是 100/2米高度。经过是100+100/2*2
第三次是100/2/2高度,经过是100+100/2*2+100/2/2*2
*/
class Demo
{
public static void main(String[] args)
{
Double distance = 100.0;//定义变量 距离。
Double high = 100.0;//定义变量 高度。
for (int x = 2;x<=10 ;x++)
{
distance = distance + high;
high = high/2;
}
high = high/2;
System.out.println("第10次落地时共经过"+distance+"米,反弹高度为"+high+"米");
}
}
作者:
提米特
时间:
2014-12-24 22:00
感觉有点问题,距离应该是:
100+50(弹起一半)+50(从弹起高度落下)+25(弹起一半)+25(从弹起的高度落下)+12.5+12.5+.....
每次落地后弹起,再次落地,要经过2个high。
作者:
小小志
时间:
2014-12-24 22:16
package itheima;
public class Demo5 {
/**
* @param args
* 题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?
*上传代码的时候将运算结果截图一起提交。
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
get();
}
public static void get(){
double k=100;
double m=100;
int j=0;
while(k>0){
k=k/2;
m+=k*2;
++j;
if(j==10){
System.out.println("球第"+j+"次落地时共经过"+(m-2*k)+"米");
System.out.println("球第"+j+"次落地后反弹的高度为"+k+"米");
break;
}
}
}
}
复制代码
作者:
新鲜感
时间:
2014-12-25 21:41
不错 还有更多的么
作者:
新鲜感
时间:
2014-12-27 22:11
啦啦啦啦啦啦
作者:
mimawo
时间:
2014-12-28 16:45
其实如果 运算a数乘除b 正好是2的N次幂的话 运用位运算 a>>N(a除以2的N次幂) a<<N(a乘2的N次幂)
作者:
新鲜感
时间:
2014-12-29 21:39
这个想法也不错。
作者:
新鲜感
时间:
2015-1-1 22:43
还有么i 大牛在哪里
作者:
新鲜感
时间:
2015-1-3 22:02
有人么 在来
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2