Java 這道小題的錯誤在哪
問題描述
/* * 一球從100米高度自由落下,每次落地后反跳回原來高度的一半,再落下, * 求它在第10次落地時共經(jīng)過多少米?第10次反彈多高? * */修改的地方都加粗了public class Demo { public static void main(String[] args){//小球反彈后的高度double height = 100;//y用于記錄小球下落的高度double y = 0;//小球經(jīng)過的總路程**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('共經(jīng)過'+sum+'米');System.out.println('第10次反彈的高度是:'+height+'米'); }}
問題解答
回答1:height = (1/2)*height ; 應為 height = (1.0/2)*height ;, 否則它的值恒為 0.
因為 數(shù)值運算的類型轉(zhuǎn)換,導致整數(shù)的除法的結(jié)果也為整數(shù), 所以 1/2的結(jié)果為 0, 而不是 0.5.
還有 y 每次循環(huán)都重置了. 改為:
public class Demo { public static void main(String[] args){//小球的高度double height = 100;//小球經(jīng)過的距離double y = 0;for(int i=1;i<=10;i++){ //記錄小球每次往下落的距離,球彈起和下落,所以 height * 2 y = y + height*2; //反彈的高度 height = (1.0/2)*height ;}// 第一次落地沒有經(jīng)歷彈起過程,需減掉初始高度y = y - 100;System.out.println('共經(jīng)過'+y+'米');System.out.println('第10次反彈的高度是:'+height+'米'); }}回答2:
y = height 每次循環(huán)都重置了 y 值,哪里是在累加……
JavaScript 代碼算法示意
var height = 100var sum = height;for (var i = 2; i <= 10; i++) { sum += height; height /= 2}// sum == 299.609375,即總路程// 最后一次是第10次彈起再下落的總長,所以再除以2才是彈起的高度height /= 2; // 0.09765625回答3:
所以代碼可以這樣寫public class Demo {
public static void main(String[] args){ //小球的高度 double height = 100; //第一次小球經(jīng)過的距離 double y = height; //不算上第一次,到第10次還要經(jīng)歷9次 for(int i=1;i<=9;i++){ //反彈的高度每次都是前一次的一半height = (1/2)*height;//每一次彈跳往返都是高度的兩倍y += height*2; } System.out.println('共經(jīng)過'+y+'米'); System.out.println('第10次反彈的高度是:'+height+'米');}
}
相關(guān)文章:
1. Docker for Mac 創(chuàng)建的dnsmasq容器連不上/不工作的問題2. javascript - (_a = [""], _a.raw = [""],....); js一個小括號的是什么意思?3. javascript - 關(guān)于微信掃一掃的技術(shù)問題4. html - Python2 BeautifulSoup 提取網(wǎng)頁中的表格數(shù)據(jù)及連接5. javascript - 關(guān)于js高級程序中的問題6. html5 - 請問利用font-face定義的字體怎么在canvas里應用?7. 小白學python的問題 關(guān)于%d和%s的區(qū)別8. html5 - css 這種六邊形的邊框怎么畫?9. javascript - vuex中子組件無法調(diào)用公共狀態(tài)10. javascript - js正則替換日期格式問題
