2的N次方计算方法(用PHP编程实现)

今天突然想起以前一个计算2的N次方的问题,当时好像下了个什么小软件可以计算出来。现在找不着了,根据毛爷爷的指示精神,自己动手用PHP编程解决问题。编写这个程序的初衷是有这样一个问题:

假如(注意是假如)一张纸足够大,可以对折51次,高度是多少,设低的厚度为0.1mm?

结果绝对会让你想象不到:2的51次方是:2251799813685200 * 0.1mm,比地球到太阳的距离还要远!

把双横线下的代码保存为PHP后缀的文件,运行之,自己填次数按确定即可得出结果。

最大只能算到1023次方(结果是:2 的 1023 次方是: 8.9884656743116E+307 ),再大结果就是INF了(INF是无穷大,表示结果溢出了)。

没有PHP环境的朋友请到这里直接计算:计算2的n次方

=============================================

计算2的N次方:<br />
<?php  
//计算2的N次方
$num = 2;
$n = $_POST['count'];
if(empty($n))
 {
?>
<form name="form1" method="post" action="<?php echo $_SERVER['PHP_SELF'] ?>">
请输入次数:<input type="text" name="count" style="width: 50px;" maxlength="4" value="" />&nbsp;
<input type="submit" style="width: 60px; height: 25px;" value=" 确定 " />
</form>

<?php
}else{
?>
<form name="form1" method="post" action="<?php echo $_SERVER['PHP_SELF'] ?>">
请输入次数:<input type="text" name="count" style="width: 50px;" maxlength="4" value="" />&nbsp;
<input type="submit" style="width: 60px; height: 25px;" value=" 确定 " />
</form>

<?php
$i=1;
while($i<$n)
{  
 $num = $num * 2;
 $i++;
}  
echo "2 的 ".$n." 次方是: ".$num;
}
?>

Trackbacks: 点击获得Trackback地址,Encode: UTF-8  点击获得Trackback地址,Encode: GB2312 or GBK  点击获得Trackback地址,Encode: BIG5
分类:PHP技术
浏览概况:评论:8 | 阅读:17726
文章评论(8)
[1楼] [引用] [TOP]
笛子 发表于 2009, April 21, 8:50 AM
js也是一样的做法:
<script type="text/javascript">
<!--
var a = window.prompt("Input",0);
if(a){
    var k=2;
    for(var i=1; i<a; i++){
        k*=2;
    }
    alert(k);
}
//-->
</script>
[2楼] [引用] [TOP]
Copterfly 发表于 2009, April 21, 1:18 PM
笛子兄厉害!好简洁啊。
[3楼] [引用] [TOP]
欧莱诺 发表于 2009, April 23, 6:53 AM
您好
想和你博客做个链接不知道行不?
已经做好了你的连接哦 ^_^
博客名称: 欧莱诺
博客地址: www.ddpcr.cn/
[4楼] [引用] [TOP]
二手科学家 发表于 2009, April 23, 3:11 PM
都是些好学的三好学生,呵呵
[5楼] [引用] [TOP]
biotech 发表于 2009, April 23, 3:12 PM
感觉研究的好深哦!
[6楼] [引用] [TOP]
乐蜂网 发表于 2009, May 13, 8:23 AM
写的挺不错的,不知道能不能加个友情链接,交个朋友方便以后访问~~贵站链接已经做好,请审核!
[7楼] [引用] [TOP]
笛子 发表于 2009, May 18, 11:17 AM
今天找到更简单的方法:

var a = window.prompt("Input",0);
if(a){
    alert(Math.pow(2,a));
}

PHP 也有 pow 函数。
[8楼] [引用] [TOP]
Copterfly 发表于 2009, May 18, 3:51 PM
我晕,这都行,哈哈。
发表评论
用户名:
密码(游客无需):
网址/E-mail:
      记住我的信息