为了账号安全,请及时绑定邮箱和手机立即绑定

划分直到达到一定数量并存储循环划分的次数

划分直到达到一定数量并存储循环划分的次数

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 关注
  • 142 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信