【问题标题】:Can someone please tell me why it is 4? [duplicate]谁能告诉我为什么是4? [复制]
【发布时间】:2015-09-04 19:58:22
【问题描述】:

考虑以下方法:

public int foo(int n) {
    int x = 1;
    int k = 0;
    while (x <= n) {
        x = x * 2;
        k = k + 1;
    }
    return k;
}

foo(13) 返回什么值?我知道答案是 4,但谁能告诉我为什么是 4?

【问题讨论】:

  • 您认为应该有其他的东西吗?您是否尝试过简单地浏览程序将执行的步骤顺序?
  • 真的吗???我的意思是,当你写下这个问题时,你可以用手指完成计算..
  • 有趣的是这个问题吸引了多少关注。

标签: java


【解决方案1】:

x 在循环中的每次迭代都会翻倍,k 每次都增加 1。

用一张桌子画出来很简单。

x  |  k 
1  |  0  
2  |  1
4  |  2
8  |  3
16 |  4
32 | <end of loop>

【讨论】:

    【解决方案2】:

    x 在每一步都加倍,直到大于13。所以x = 1 -&gt; 2 -&gt; 4 -&gt; 8 -&gt; 16。所以它翻了 4 倍,k 也增加了4 倍。所以从0变成4

    【讨论】:

      【解决方案3】:

      以下是步骤/算法步骤:

      X=1 k=0 n =13
      
      Step 1: x=2 k=1 
      
      Step 2: x=4 k=2
      
      Step 3: x=8 k = 3. Since 8<13...
      
      Step 4: x=16 k= 4. 16>13, so return k=4.
      

      【讨论】:

        【解决方案4】:

        它的发现 n

        【讨论】:

          【解决方案5】:

          K是进入while循环的次数。

          由于x是2次方,2^3小于13,所以最后一次进入,2^4大于13,然后k为4

          【讨论】:

            【解决方案6】:

            很简单...

            public int foo([13]) {
                int x = 1;
                int k = 0;
                while (x <= n) {
                    x = x * 2;
                    k = k + 1;
                }
                return k;
            }
            

            当 x 大于或等于 n[13] 时,您的 while 循环停止

            每次 x 乘以 2

            (定义)x = 1

            1. x = 2

            2. x = 4

            3. x = 8

            4. x = 16(现在超过 n[13])

            所以 while 循环运行了 4 次

            while (x <= n) {
                        x = x * 2;
                        k = k + 1;//dis thang
                    }
            

            k[0]+1=1

            k[1]+1=2

            k[2]+1=3

            k[3]+1=4

            这就是为什么它是 4。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2013-05-29
              • 1970-01-01
              • 2016-04-25
              • 2020-04-22
              • 1970-01-01
              • 2015-03-22
              • 2020-02-16
              • 2021-04-16
              相关资源
              最近更新 更多