<?php
$num=0;
for ($i=1;$i<=64;$i++)
{
    static $p=1;
    $num+=$p;
    $p=$p*2;
echo '第'.$i.'个箱子:'.$p;
echo "<br />";
}
echo '总共:'.$num;
?>

解决方案 »

  1.   

    <?
    $num=1;
    for($i=1;$i<64;$i++)
      {
      $num+=$num*2;
      }
    echo "最后一个箱子的小麦数: ".$num;
    ?>
      

  2.   

    第1个箱子:2
    第2个箱子:4
    第3个箱子:8
    第4个箱子:16
    第5个箱子:32
    第6个箱子:64
    第7个箱子:128
    第8个箱子:256
    第9个箱子:512
    第10个箱子:1024
    第11个箱子:2048
    第12个箱子:4096
    第13个箱子:8192
    第14个箱子:16384
    第15个箱子:32768
    第16个箱子:65536
    第17个箱子:131072
    第18个箱子:262144
    第19个箱子:524288
    第20个箱子:1048576
    第21个箱子:2097152
    第22个箱子:4194304
    第23个箱子:8388608
    第24个箱子:16777216
    第25个箱子:33554432
    第26个箱子:67108864
    第27个箱子:134217728
    第28个箱子:268435456
    第29个箱子:536870912
    第30个箱子:1073741824
    第31个箱子:2147483648
    第32个箱子:4294967296
    第33个箱子:8589934592
    第34个箱子:17179869184
    第35个箱子:34359738368
    第36个箱子:68719476736
    第37个箱子:137438953472
    第38个箱子:274877906944
    第39个箱子:549755813888
    第40个箱子:1.09951162778E+012
    第41个箱子:2.19902325555E+012
    第42个箱子:4.3980465111E+012
    第43个箱子:8.79609302221E+012
    第44个箱子:1.75921860444E+013
    第45个箱子:3.51843720888E+013
    第46个箱子:7.03687441777E+013
    第47个箱子:1.40737488355E+014
    第48个箱子:2.81474976711E+014
    第49个箱子:5.62949953421E+014
    第50个箱子:1.12589990684E+015
    第51个箱子:2.25179981369E+015
    第52个箱子:4.50359962737E+015
    第53个箱子:9.00719925474E+015
    第54个箱子:1.80143985095E+016
    第55个箱子:3.6028797019E+016
    第56个箱子:7.20575940379E+016
    第57个箱子:1.44115188076E+017
    第58个箱子:2.88230376152E+017
    第59个箱子:5.76460752303E+017
    第60个箱子:1.15292150461E+018
    第61个箱子:2.30584300921E+018
    第62个箱子:4.61168601843E+018
    第63个箱子:9.22337203685E+018
    第64个箱子:1.84467440737E+019
    总共:1.84467440737E+019
    最后一个箱子的小麦数: 1.14456127343E+030 
    上面的是二楼的算法,下面的是三楼的算法,,好像对不上哦,呵。。
      

  3.   

    有这么复杂吗?
    <?php
    var_dump(pow(2,64)); 
    ?>
      

  4.   

    楼上的,pow(2,64))结果是偶数。但是他第一个箱子只放了一粒结果显然是奇数。应该是pow(2,64)-1
      

  5.   

    最后一个箱子
    <script language="JavaScript">
    document.write(Math.pow(2,63));
    </script>
      

  6.   

    看看这样的规律就
    第1箱: pow(2,0) = 1
    第2箱: pow(2,1) = 2
    第3箱: pow(2,2) = 4
    第4箱: pow(2,3) = 8
    第5箱: pow(2,4) = 14
    .............
    应该是pow(2,63)吧
      

  7.   

    <?php
    var_dump(pow(2,63)); 
    ?>------------------------
    Content-type: text/htmlX-Powered-By: PHP/4.3.6
    float(9.2233720368548E+18)
      

  8.   

    #include<stdio.h>
    #include<string.h>char a[256]={'1'};
    int b=64;
    void main()
    {
    int i,j;
    int iadd=0,len,sum=0;
    clrscr();
    for(i=1;i<=b;i++)
    {
    iadd=0;
    for(j=0;j<strlen(a);j++)
    {
    sum=(a[j]-48)*2+iadd;
    iadd=sum/10;
    a[j]=sum%10+48;
    }
    if(iadd)
    a[j]=iadd+48;
    }
    printf("result %d is:",i-1);
    len=strlen(a)-1;
    while(len>=0)
    printf("%c",a[len--]);
    printf("\n");
    getchar();
    }
      

  9.   

    晕倒,C里经常有人问这样的问题,所以以为在C里,呵呵:
    <?$a=array('1');;
    $b=64;$iadd=0;
    $sum=0;
    for($i=1;$i<=$b;$i++)
    {
    $iadd=0;
    for($j=0;$j < strlen($a);$j++)
    {
    $sum=($a[$j]-48)*2+$iadd;
    $iadd=$sum/10;
    $a[$j]=$sum%10+48;
    }
    if($iadd)
    $a[$j]=$iadd+48;
    }
    echo "result ".$i." is:";
    $len=strlen($a)-1;
    while($len>=0)
    echo $a[$len--];
    echo "<p>";?>
      

  10.   

    我那个的
     $p=$p*2;
    echo '第'.$i.'个箱子:'.$p
    这两行应该换过来~~
      

  11.   

    回复人:coolstr(木头) ( 一级(初级)) 信誉:100  2004-11-18 9:10:15  得分:0
    <?
    $num=1;
    for($i=1;$i<64;$i++)
    {
    $num+=$num*2;
    }
    echo "最后一个箱子的小麦数: ".$num;
    ?>===================这种算法错误~~
    题目要求每个箱子是前一个箱子的两倍,而不是前面所有箱子里的小麦数的总和的两倍
      

  12.   

    算最后一个箱子有多少
    <?php
    var_dump(pow(2,63));
    ?>
    而不是Ugain的
    <?php
    var_dump(pow(2,64));
    ?>
      

  13.   

    就是求2的63次方,
    <?
    $num=1;
    for($i=0;$i < 63;$i++)
    {
    $num*=2;
    }
    echo "最后一个箱子的小麦数: ".$num;
    ?>
    9.22337203685E+018但后面有若干位被忽略掉了,所以要将每个数字都存到数组中,每次循环时,将该数组中的数*2才可以。*2的时候,还要考虑进位的问题。
      

  14.   

    绝对正解 最后一个箱子的数量:echo 'bcpow("2","63")='.bcpow("2","63");
    结果
    bcpow("2","63")=9223372036854775808 前提,是你的PHP安装了BCMATH高精度函式库了。。
      

  15.   

    其实应用数学里是不需要高精度的~~当a>>b的时候,b是可以省略的~~
      

  16.   

    好热闹啊echo bcpow("2","63");
    使用高精度函数库的原因是php最多只能维持16为有效数根据题题意“用程序表述”,是不可以使用指数函数的
    $m = 1;
    for($i=1;$i<64;$i++) {
      $m = bcmul($m,2);
    }
    echo $m;
      

  17.   

    python:
    n = 0
    for i in range(65):
        n += 2**i
    print n
      

  18.   

    line 3 should have indent.
      

  19.   

    问一下
    python里的缩进能用空格吗
      

  20.   

    根据题题意“用程序表述”,是不可以使用指数函数的
    $m = 1;
    for($i=1;$i<64;$i++) {
      $m = bcmul($m,2);
    }
    echo $m;唠叨老大,不同意你的说法:
    如下
    echo 'bcpow("2","63")='.bcpow("2","63");
    这也是一段程序
    只是我们使用的算法不一样而已,呵呵,,
      

  21.   

    用C可不可以呀.呵呵.
    #include "stdlib.h"
    void main()
    {
        int i=1;
        printf("第一个箱子有1个");
        for(i=1;i<=64;i++)
        {
           printf("第二个箱子有%d",2*i);
        }
    }
      

  22.   

    $num=1;
    for($i=1;$i<64;$i++)
    {
      $num=$num*2;
    }
    这是程序表述
    不过对于结果可能不是很精确、
    不过应该这样算法。