/** * Calculate the Fibonacci number of the given integer. * @param int n If n <= 0 then 0 is assumed. * @return int Fibonacci number. */ public static function fib($n) { if ($n <= 0) { return 0; } else { if ($n == 1) { return 1; } else { return Fibonacci::fib($n - 1) + Fibonacci::fib($n - 2); } } }
* Copyright 2015 The University of Edinburgh. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or * implied. See the License for the specific language governing * permissions and limitations under the License. */ namespace Maths; require "Fibonacci.php"; /** * Print usage information. */ function printUsage() { print "Usage: php FibonacciProgram.php N\n"; print " where N >= 0\n"; } if (count($argv) < 2) { printUsage(); } else { print Fibonacci::fib($argv[1]); print "\n"; }
/** Test Fibonacci::fib(30). */ public function testFib30() { $this->assertEquals(832040, Fibonacci::fib(30)); }