Exercises 1

Factorial

Factorial is a mathematical operation defined by

n! = n * (n-1) * (n-2) * ... * 1

Write a recursive function to calculate factorial of any natural number.

Tip: Factorial is defined by recursion by

n! = n * (n-1)!

Please note: 0-factorial equals 1 pr. definition.

First - sketch your function on paper.
Next – implement a program to test it.


Solution:

Input n (integer):

Result :

Code:

Languages:
//Javascript function function FactorialRecusive(n){ if(n===1){ return 1; }else{ return n*FactorialRecusive(n-1); } } function Factorial(n){ var total = n; while(n>1){ n--; total *= n; } return total; } //Javascript Object Oriented Static Class Method function AI(){} AI.factorialRecusive = function(n){ if(n===1){ return 1; }else{ return n*AI.factorialRecusive(n-1); } } AI.factorial = function(n){ var total = n; while(n>1){ n--; total *= n; } return total; } //Javascript Object Oriented Instance Method function AI(){} AI.prototype.factorialRecusive = function(n){ if(n===1){ return 1; }else{ return n*this.factorialRecusive(n-1); } } AI.prototype.factorial = function(n){ var total = n; while(n>1){ n--; total *= n; } return total; } //Javascript call/invoke var n = FactorialRecusive(5); //n=120 //Javascript call/invoke var n = AI.factorialRecusive(5); //n=120 //Javascript call/invoke var ai = new AI() var n = ai.factorialRecusive(5); //n=120 //or var n = new AI().factorialRecusive(5); //n=120 //Java Object Oriented Static Class Method public class AI { public static int factorialRecusive(int n) { if(n==1){ return 1; }else{ return n*factorialRecusive(n-1); } } public static int factorial(int n){ int total = n; while(n>1){ n--; total *= n; } return total; } } //Java Object Oriented Instance Method public class AI { public int factorialRecusive(int n) { if(n==1){ return 1; }else{ return n*factorialRecusive(n-1); } } public int factorial(int n){ int total = n; while(n>1){ n--; total *= n; } return total; } } //Java call/invoke int n = AI.factorialRecusive(5);//n=120 //Java call/invoke var ai = new AI() var n = ai.factorialRecusive(5);//n=120 //or var n = new AI().factorialRecusive(5);//n=120 //C# public class AI { public static int FactorialRecusive(int n) { if (n == 1) { return 1; } else { return n * FactorialRecusive(n - 1); } } public static int Factorial(int n) { int total = n; while (n > 1) { n--; total *= n; } return total; } } //C# call/invoke int n = AI.FactorialRecusive(5);//n=120 //PHP function FactorialRecusive($n){ if($n==1){ return 1; }else{ return $n*FactorialRecusive($n-1); } } function Factorial($n){ $total = $n; while($n>1){ $n--; $total *= $n; } return $total; } //PHP call/invoke $n = FactorialRecusive(5);//$n=120 //PHP class AI { public static function factorialRecusive($n){ if($n==1){ return 1; }else{ return $n*self::factorialRecusive($n-1); } } public static function Factorial($n){ $total = $n; while($n>1){ $n--; $total *= $n; } return $total; } } //PHP call/invoke $n = AI::factorialRecusive(5);//$n=120 //PHP class AI { public function factorialRecusive($n){ if($n==1){ return 1; }else{ return $n*$this->factorialRecusive($n-1); } } public function factorial($n){ $total = $n; while($n>1){ $n--; $total *= $n; } return $total; } } //PHP call/invoke $ai = new AI(); $n = ai->factorialRecusive(5);//$n=120 //Objective-C @implementation AI +(int)FactorialRecusive:(int)n{ if(n==1){ return 1; }else{ return n*[AI FactorialRecusive:(n-1)]; } } +(int)Factorial:(int)n{ int total = n; while(n>1){ n--; total *= n; } return total; } @end //Objective-C call/invoke int n = [AI FactorialRecusive:5];//n=120