Write a program for calculating value of an integer, C/C++ Programming

Assignment Help:

Write a Program for Calculating Value of an Integer?

For a clear understanding of recursive function we shall see an illustration for calculating value of an integer.
main()
{
int a,factorial;
printf("\n enter any number");
scanf("%d",&a);.
factorial =fact(a);
printf ("factorial value =%fctorial);
}

fact (int x)
{
int f =1,i;
for(i=x;i>=;i++ )
f=f*i;
return f;
}

And at this point is the output

Enter any number (3 is given as input)
Factorial value =6

at the present we will see the program using recursion

main()
{
int a,fact;
printf(enter any number");
scanf("%d",&a);
fact =fact_rec(a);
printf("\nfactorial value =%d",fact);
}

fact_rec(int x)
{
int f,i;
if (x==1)
return 1;
else
f=x*fact_rec(x-1);
return (f);
}

When the recursive program is executed the recursive function calls aren't executed immediately. Relatively, they are placed on a stack until the condition that terminates the recursion is encountered and the function calls are then executed in reverse order, as they are "popped" off the stack. Therefore, when evaluating a factorial recursively, the function calls will proceed in the following order.

n! = n! * (n-1)!
(n-1)! = (n-1)*(n-2)!
(n-2)! = (n-2)*(n-3)!
............................
2! = 2*1!
1! =1
The actual values will afterward be returned in the following reverse order

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

This reversal in the order of execution is a characteristic of all the functions that are executed recursively.

The recursive function fact_rec() is evaluate as illustrated in the following table.
Function call Value returned
fact_rec(1) 1
fact_rec(2) 2*fact_rec(1) or 2*1
fact_rec(3) 2*fact_rec(2) or 3*2* 1
fact_rec(4) 2*fact_rec(3) or 4*3*2*1


In the first run when the value of x = 1 it verify the if condition if (x=1) is satisfied and is returned through return statement f =x*fact_rec(x-l). Thus this becomes f =2*fact_rec(1). We know that fact_rec( 1) is 1, therefore the expression reduces to (2 * 1) or 2.

Recursive functions can be resourcefully used to solve problems where the solution is expressed in terms of successively applying the same solution to subsets of the problem when we use recursive functions, we must have an if statement, somewhere to force the function to return without recursive call being executed. Otherwise, the function will never return.


Related Discussions:- Write a program for calculating value of an integer

Program for stack over flow vulnerability., Imagine that the server program...

Imagine that the server program is a setuid program owned by the root, then after you penetrate the program with a shell running, you become the ROOT and you can remove the whole f

Probabilistic hough transform, Two kinds of line detection are implemented ...

Two kinds of line detection are implemented in OpenCV, the Hough Transform and the probabilistic Hough transform. Assume that there are n feature points in an image and that it tak

Program to create triangles on the surface , Using your mountain project so...

Using your mountain project source code as a starting point, you are to write a code that randomly chooses one of the triangles on the surface of your mountain, this will be the en

Shell sort - c program, Shell sort - C Program: Write a program to def...

Shell sort - C Program: Write a program to define shell sort. void main() {                  //program for sorting by select sort int a[20],i,k,j,n;   clrscr();

Explain multilevel inheritance, Multilevel Inheritance In multilevel in...

Multilevel Inheritance In multilevel inheritance there is a parent class , from whom we derive another class . now from this derived class we can derive another class and so on

Find and print the oldest and the youngest employee, Draw a flowchart ...

Draw a flowchart for a program that allows the user to enter 20 names along with their ages and their Social Security Numbers in three parallel arrays. Programs shou

Described overriding?, In order to override a method, a subclass of the cla...

In order to override a method, a subclass of the class which originally declared the method have to declare a method along with the same name, return type (or a subclass of that re

C program for function of merge , C Program for FUNCTION OF MERGE #inc...

C Program for FUNCTION OF MERGE #include conio.h> #include stdio.h> char cot(char a[],char b[]); void main() {           char a[50],b[50];           clrscr()

Wap to print the largest number from any 10 numbers, WAP TO PRINT THE LARGE...

WAP TO PRINT THE LARGEST NUMBER FROM ANY 10 NUMBERS #include stdio.h> #include conio.h>   void main()   {                    int a[10],i,max;

Write Your Message!

Captcha
Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd