Program:-
public class RecursionV34 {
//factorial(0) = 1
//factorial(n) = n * n-1 *.....1
//factorial(5) = 5 * 4 * 3 * 2 * 1 = 120
//factorial(n) = n * factorial(n-1)
static int factorial(int n){
if(n==0 || n==1){
return 1;
}
else{
return n * factorial(n-1);
}
}
// we can also do it as follows but we prefer the above process of recursive function .
static int factorial_iterative(int n){
if(n==0 || n==1){
return 1;
}
else {
int product = 1;
for (int i = 1; i <= n; i++) {
product *= i;
}
return product;
}
}
//Q. write a program to print fibonacci number 0,1,1,2,3,5,8,13
//using for loop.
static int fibonacci(int a){
int first = 0, second = 1;
System.out.println("Fibonacci series");
for(int i = 1; i<=a;i++){
System.out.print(first + " ");
int next = first +second;
first = second;
second = next;
}
return first;
}
//using recursion.
static int Fibonacci(int n){
if(n<=1){
return n;
}
else{
return Fibonacci(n-1) + Fibonacci(n-2);
}
}
public static void main(String[] args) {
int a = 4;
System.out.println("the factorial of " + a +" is: "+factorial(a));
System.out.println("the factorial of " + a +" is: "+factorial_iterative(a));
fibonacci(10);
System.out.println();
int n =10;
for(int i = 0;i<n;i++) {
System.out.print(Fibonacci(i) + " ");
}
}
}
