【发布时间】:2013-03-14 01:30:17
【问题描述】:
这个 php 方法假设使用 for 循环将斐波那契数列打印到指定值。我不确定为什么它不起作用?
<?php
function fib ($n) { // a function called fib, declaire variable n (the sequence number)
for ($n=0;$n<30;$n++) {
if ($n < 3) { return $n; } // if n is smaller than 3 return n (1 or 2)
else { return fib ($n - 1) + fib ($n - 2); }
/* if the number is 3 or above do 2 sums (n-1) and (n-2)
and then add the 2 sums together (n-1)+(n-2)
Example Fibonacci number 4
(4-1)+(4-2) = 5
3 + 2 = 5
*/
}
print $n;
?>
【问题讨论】:
-
好吧,你不会把 1 打印两次吧..?为什么会有特殊情况?序列的重点是没有特殊情况......
-
是有错字还是你根本没有调用这个函数?
-
可能只是循环有问题,但我不太明白?我现在看到一个问题,因为它只会打印一个数字?
-
我的错,问是否可以在方法内部调用方法是个愚蠢的问题吗?
-
@Jesse 是的,你可以。您通常会在 ID 生成函数中看到它的一个示例,您要在其中生成一个 id,检查它是否未被使用,以及它是否从自身内部再次调用该函数。