如何简化这段东西

2013-12-13 01:02:47 +08:00
 kennedy32
尝试了一下阶乘表如下:
<?php

function jiecheng($i){
if($i==1){
return $i;
}else{
return $i*jiecheng($i-1);
}
}
function jiecheng2($i){
if($i==1){
return $i;
}else{
$j=jiecheng2($i-1);
return "$i*$j";
}
}

for($i=1;$i<=10;$i++){
echo jiecheng2($i)."=".jiecheng($i)."<br/>";
}

?>

觉得两个功能可以合并,但是总是出错,得不到目前的结果如下:
1=1
2*1=2
3*2*1=6
4*3*2*1=24
5*4*3*2*1=120
6*5*4*3*2*1=720
7*6*5*4*3*2*1=5040
8*7*6*5*4*3*2*1=40320
9*8*7*6*5*4*3*2*1=362880
10*9*8*7*6*5*4*3*2*1=3628800

求前辈指导合并,或者简化。
4887 次点击
所在节点    PHP
55 条回复
mantianyu
2013-12-13 23:56:55 +08:00
我了个去
<script src="https://gist.github.com/thbourlove/7940940"></script>
mantianyu
2013-12-13 23:58:12 +08:00
mantianyu
2013-12-14 00:01:27 +08:00
T_T_T_T_T_T_T_T_T_T_T

<script src="https://gist.github.com/cifer-lee/7946292.js"></script>
mantianyu
2013-12-14 00:01:56 +08:00
<?php
// 递归版
$s = 1;
function jiecheng($num) {
global $s; $s *= $num;
if($num == 1) return "$num = $s \n"; else return "$num * " . jiecheng($num - 1);
}

// 循环版
function jiecheng2($num) {
for($m=1,$s=1,$i=1;$i<$num;++$i) {$m=($i+1)." * $m";$s*=($i+1);}echo "$m = $s\n";
}
octref
2013-12-14 00:33:38 +08:00
function factorial($x) {
for($i=1, $j=1; $i <= $x; $j*=$i, $i++);
return $j;
}
echo factorial(10)
picasso250
2013-12-14 13:17:23 +08:00
我看不下去了,幫你貼個
https://gist.github.com/cifer-lee/7946292
picasso250
2013-12-14 13:17:49 +08:00
yangff
2013-12-15 13:27:32 +08:00
@picasso250 噗。。
thbourlove
2013-12-15 16:01:43 +08:00
已笑尿。。。
faceair
2013-12-15 20:44:10 +08:00
@mantianyu 我来试贴一下,转换不出来不要笑。。 https://gist.github.com/cifer-lee/7946292
faceair
2013-12-15 20:45:34 +08:00
我已经尽力了。。
谁知道贴gist有什么诀窍 @Livid
mantianyu
2013-12-15 20:47:39 +08:00
@faceair
@picasso250

奇怪了, 我贴了两个别人的, 就成功了, 贴我自己的, 就是成功不了.
mantianyu
2013-12-15 20:49:52 +08:00
thwawar
2013-12-15 22:28:10 +08:00
thwawar
2013-12-15 22:28:47 +08:00
直接贴那个 gist 在地址栏的地址就好了。。。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/92952

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX