All pastes #910847 Raw Edit

Miscellany

public text v1 · immutable
·published 2008-02-20 07:15 UTC
rendered paste body
<?php

	class fibonacci {
		
		public static function recursiva ($n){
			if	($n < 2){
				return $n;
			}else {
				return self::recursiva($n - 1) + self::recursiva($n - 2);
			}
		}
		
		public static function interactiva ($n){
			$a = 1;
			$b = 0;
			for ($i = 0; $i < $n; $i++){
				$y = $a + $b;
				$a = $b;
				$b = $y;
			}
			return $b;
		}
		
		public static function matriz($n){
			if	($n <= 0) return 0;
			$i = $n - 1;
			$a = 1;
			$b = 0;
			$c = 0;
			$d = 1;
			while ($i > 0) {
				if($i%2){
					$a = (($b*$d) + ($a*$c) );
					$b = ($d*($b + $a) + ($c*$d));
				}
				
				$c = (pow($c,2) + pow($d, 2));
				$d = $d *((2*$c)+$d);
				$i = $i/2;
			}
			return $a + $b;
		}
		
	}

	echo fibonacci::recursiva(25) . "\n";
	echo fibonacci::interactiva(25) . "\n";
	echo fibonacci::matriz(25) . "\n";
	
?>