double a =100;
double b =a/2;
int i =0;
for (i =2;i<=10;i++){
a = a+b*2;
b = b/2;
}System.out.println("第"+i+"次落地经过时"+"共"+a+"米");
System.out.println("第"+i+"次落地时"+"共反弹"+b+"米");
请问一下 为什么i=2?我没有看懂..
我算出来的结果是第11次经过和弹起 可是我算的是第10次啊 怎么搞的但是 答案还对 我有点迷糊了..还有a=a+b*2也不怎么懂..希望明白人 帮小弟详细讲解一下作者: 曹奎 时间: 2013-8-14 12:31 本帖最后由 曹奎 于 2013-8-14 12:33 编辑
public static void main(String[] args) {
double a =100; //初始值 a在一百米高空落地必经过100米
double b =100; //b值用来计算反弹米数
for (int i =1;i<=10;i++){ // i从1循环到10 用来说明是走第1次反弹到第10次反弹
b = b/2; //第一反弹 第一次循环i=1 计算第一次反弹米数
a=a+b*2; //计算共经过米数 初始的100米+反弹的50米+反弹之后落下的50米 才能计算第二次反弹 所以是反弹数*2
System.out.println("第"+i+"次落地时反弹"+b+"米,"+"共经过"+a+"米"); //打印每次反弹的详情
}