亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

劃分直到達到一定數量并存儲循環劃分的次數

劃分直到達到一定數量并存儲循環劃分的次數

www說 2023-08-23 11:42:37
如果將 1 除以 2,則得到 0.5。如果你再除以 2,你會得到 0.25。編寫一個程序,計算并輸出 1 除以 2 所需的次數,才能得到小于萬分之一 (0.0001) 的值。我有一個應該可以工作的 for 循環,但它沒有返回任何結果公共類主要{public static void main(String[] args) {    double count ;    for(double i = 1; i<= 0.0001; count++){            count = i/2;        System.out.println("You have to divide 1 " + count + "times to get 0.0001");    }程序運行它只是不返回任何內容。
查看完整描述

4 回答

?
森欄

TA貢獻1810條經驗 獲得超5個贊

嘗試這個


    int count = 0;

    double i = 1;

    while(i >= 0.0001){

            i = i/2;

            count++;

            System.out.println("You have to divide 1 " + count + " times to get 0.0001");

    }

也許你只想在循環之后打印出來


在 count 的值從未被用來評估循環之前。嘗試有兩個變量。


查看完整回答
反對 回復 2023-08-23
?
隔江千里

TA貢獻1906條經驗 獲得超10個贊

好吧,我明白了,只需圍繞 public class Main { 切換一些東西


public static void main(String[] args) {


    int count = 0;

    for (double i = 1; i >= 0.0001; count++ ) {

             i = i / 2;




    }

    System.out.println("You have to divide 1 " + count + " times to get 0.0001");


查看完整回答
反對 回復 2023-08-23
?
狐的傳說

TA貢獻1804條經驗 獲得超3個贊

您可以使用下面的代碼。


        int count = 0;

        for(double i = 1; i>= 0.0001; ){

                i = i/2;

           count++;


            System.out.println("You have to divide 1 " + count + " times to get " + i);



        }


查看完整回答
反對 回復 2023-08-23
?
慕虎7371278

TA貢獻1802條經驗 獲得超4個贊

您可以翻譯您的等式:


x / y^n <= z


n >= log(x/z) / log(y)

因此它很簡單:


public static void main(String[] args) {

   System.out.println("You have to divide 1 " + Math.ceil(Math.log(1.0 / 0.0001) / Math.log(2)) + " times by 2 to get 0.0001");

}


查看完整回答
反對 回復 2023-08-23
  • 4 回答
  • 0 關注
  • 233 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號