国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術文章
文章詳情頁

Java 這道小題的錯誤在哪

瀏覽:57日期:2023-11-07 13:19:14

問題描述

/* * 一球從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+'米'); }}

問題解答

回答1:

height = (1/2)*height ; 應為 height = (1.0/2)*height ;, 否則它的值恒為 0.

因為 數值運算的類型轉換,導致整數的除法的結果也為整數, 所以 1/2的結果為 0, 而不是 0.5.

還有 y 每次循環都重置了. 改為:

public class Demo { public static void main(String[] args){//小球的高度double height = 100;//小球經過的距離double y = 0;for(int i=1;i<=10;i++){ //記錄小球每次往下落的距離,球彈起和下落,所以 height * 2 y = y + height*2; //反彈的高度 height = (1.0/2)*height ;}// 第一次落地沒有經歷彈起過程,需減掉初始高度y = y - 100;System.out.println('共經過'+y+'米');System.out.println('第10次反彈的高度是:'+height+'米'); }}回答2:

y = height 每次循環都重置了 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:

Java 這道小題的錯誤在哪

所以代碼可以這樣寫public class Demo {

public static void main(String[] args){ //小球的高度 double height = 100; //第一次小球經過的距離 double y = height; //不算上第一次,到第10次還要經歷9次 for(int i=1;i<=9;i++){ //反彈的高度每次都是前一次的一半height = (1/2)*height;//每一次彈跳往返都是高度的兩倍y += height*2; } System.out.println('共經過'+y+'米'); System.out.println('第10次反彈的高度是:'+height+'米');}

}

標簽: java
相關文章:
主站蜘蛛池模板: 山西省| 芒康县| 那坡县| 阿图什市| 大邑县| 杨浦区| 宁陵县| 吉木萨尔县| 泰兴市| 漯河市| 勐海县| 丹江口市| 绥德县| 郧西县| 岢岚县| 库尔勒市| 孟津县| 巍山| 贺兰县| 集安市| 恩施市| 洛浦县| 营口市| 马山县| 峨山| 陵水| 日喀则市| 保亭| 仁化县| 竹北市| 肃宁县| 新疆| 盘锦市| 偏关县| 图木舒克市| 晋宁县| 扎鲁特旗| 富源县| 遵义县| 石家庄市| 齐齐哈尔市|