/*
* 一球从100米高度自由落下,每次落地后反跳回原来高度的一半,再落下,
* 求它在第10次落地时共经过多少米?第10次反弹多高?
*
*/
修改的地方都加粗了
public class Demo {
public static void main(String[] args){
//小球反弹后的高度
double height = 100;
//y用于记录小球下落的高度
double y = 0;
//小球经过的总路程
**double sum = 0;**
for(int i =1;i<=10;i++){
//记录小球落下的高度
y = height ;
//小球每次反弹后的高度
height = (**1.0**/2)*height;
//因为第10次反弹的高度是不用加的
if(i<=9){
//小球的总路程
sum =y+height;
}
}
System.out.println("共经过"+sum+"米");
System.out.println("第10次反弹的高度是:"+height+"米");
}
}
height = (1/2)*height ;
应为height = (1.0/2)*height ;
, jika tidak nilainya sentiasa 0.Oleh kerana penukaran jenis operasi angka, hasil pembahagian integer juga adalah integer, jadi hasil
1/2
ialah 0, bukan 0.5.Juga y ditetapkan semula setiap kali ia bergelung
y = height
Nilai y ditetapkan semula setiap kali gelung, di manakah pengumpulannya...Rajah algoritma kod JavaScript
Jadi kod boleh ditulis seperti ini
Demo kelas awam {
}