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.
//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