<?php
$sum = 1;
for ($i = 1;$i <=100;$i++){
$sum *= $i;
}
echo "100! = ".$sum;
?>
结果是:
100! = 9.33262154439E+157
没搞不清这个结果是怎么出来地,为什么是这个数
PHP高手来啊
答案:6 悬赏:0 手机版
解决时间 2021-05-15 09:37
- 提问者网友:锁深秋
- 2021-05-15 06:22
最佳答案
- 五星知识达人网友:怙棘
- 2021-05-15 07:14
<?php
$sum = 1;
for ($i = 1;$i <=100;$i++){
$sum *= $i;
}
echo "100! = ".$sum;
?>
$sum *= $i注意这个 *=
a *= b是把a*b的值再存到a里边
所以对于$sum也就是
1*1 = 1 = 1!
1*2 = 2 = 2!
2*3 = 6 = 3!
6*4 = 24 = 4!
24*5 = 120 = 5!
....
$sum = 100!
!是阶乘,4! = 4*3*2*1
n! = (n-1) * (n-2) *...* 2 * 1
知道了吧,就是求100的阶乘的计算,只不过这个数字最后很大,所以存为浮点类型了
9.33262154439E+157 ≈ 9.33 * 10^157
$sum = 1;
for ($i = 1;$i <=100;$i++){
$sum *= $i;
}
echo "100! = ".$sum;
?>
$sum *= $i注意这个 *=
a *= b是把a*b的值再存到a里边
所以对于$sum也就是
1*1 = 1 = 1!
1*2 = 2 = 2!
2*3 = 6 = 3!
6*4 = 24 = 4!
24*5 = 120 = 5!
....
$sum = 100!
!是阶乘,4! = 4*3*2*1
n! = (n-1) * (n-2) *...* 2 * 1
知道了吧,就是求100的阶乘的计算,只不过这个数字最后很大,所以存为浮点类型了
9.33262154439E+157 ≈ 9.33 * 10^157
全部回答
- 1楼网友:山有枢
- 2021-05-15 12:57
数值过大,导致溢出。整形值最大好像是20亿。php里面没有long类型的数值,
所有会自动转换为float类型的。而flat类型也不足以支持你那么大的数据。
- 2楼网友:鸽屿
- 2021-05-15 12:03
浮点数而已
- 3楼网友:不甚了了
- 2021-05-15 11:38
没错啊,数字大到一定成都 php自动用科学计数法显示出来 怎么了?
- 4楼网友:街头电车
- 2021-05-15 10:07
没错啊,结果就是这么多啊,只不过是采用了科学计数法。就是9.33262154439乘以10的157次方。
- 5楼网友:北城痞子
- 2021-05-15 08:54
<?php
$sum = 1; $sum开始=1
for ($i = 1;$i <=100;$i++)这里是设置$i=1开始,每次加1,一直加到100的循环
{$sum *= $i;} 循环100次里,每次都让$sum=$sum乘以$i 就是说第1次是1*1,第2次,1*2,第3次2*3
echo "100! = ".$sum;?>
说白了就是求100的阶乘
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯