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

Decode the Code, Smugglers are becoming very smart day by day. Now they hav...

Smugglers are becoming very smart day by day. Now they have developed a new technique of sending their messages from one smuggler to another. In their new technology, they are send

Assignment, write a simple c++ program to that use the value to add five nu...

write a simple c++ program to that use the value to add five number .your program should prompt the user to enter these five numbers one after the other

How many ways are there to initialize an int with a constant, There are two...

There are two ways for initializes in C++ as shown in the example that follows. The first way uses the traditional C notation. The second way uses constructor notation. int foo

C++, padovan string c++ program

padovan string c++ program

C program to swap two numbers using reference arguments, Aim: To implement...

Aim: To implement a program to swap two numbers using reference arguments. Code: void swap(int *a, int *b) {             int temp;             temp=*a;

Example for external storage class - computer programming, Example for exte...

Example for external storage class - computer programming? extern double sin (double); In a function prototype, for the sin() function its function definition ~ we can write

Do i require checking for null before delete p?, No. it's not required T...

No. it's not required The C++ language guarantees that delete p will do nothing if p is equivalent to NULL. As you might get the test backwards, and as most testing methodologie

Minimum total number of shelv, Write a program that finds the minimum total...

Write a program that finds the minimum total number of shelv, C/C++ Programming

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