Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

I have this program that times iterative and recursive solutions. I need to use

ID: 3536534 • Letter: I

Question

I have this program that times iterative and recursive solutions. I need to use this function: C(n, r) = n! / (r! * (n-r)!). I have the recursive function I just need help doing the iterative but I have no idea of the difference, also what am I missing in my code? Code and explanations would be much appreciated!


1 #include <iostream>

2 #include <sys/time.h>

3 #include <cstdlib>

4

5 using std::cout;

6 using std::endl;

7 using std::cin;

8

9 unsigned long factorial (unsigned long n, unsigned long r){

10 if (n == r || r == 0)

11 return 1;

12 else

13 {

14 return factorial (n - 1, r) + factorial( n - 1, r - 1);

15 }

16 }

17

18 int main() {

19 struct timeval stop, start;

20 int n, r;

21 unsigned long output;

22 cout << "Enter n, r: ";

23 cin >> n;

24 cin >> r;

25 gettimeofday (&start , NULL);

26

27 output = factorial(n) / (factorial (r)* factorial(n - r));

28

29 gettimeofday(&stop, NULL);

30 cout << " Total is: " << output << endl << "Total Time: " << stop.tv_usec - start.tv _usec << endl;

31 return 0;

32 }

Explanation / Answer

1 #include <iostream>

2 #include <sys/time.h>

3 #include <cstdlib>

4

5 using std::cout;

6 using std::endl;

7 using std::cin;

8

9 unsigned long factorial (unsigned long n){// change in parameter

10 if (n == 1)

11 return 1;

12 else

13 {

14 return n* factorial( n - 1); // calculation to calculate factorial.....using recursion

15 }

16 }

17

18 int main() {

19 struct timeval stop, start;

20 int n, r;

21 unsigned long output;

22 cout << "Enter n, r: ";

23 cin >> n;

24 cin >> r;

25 gettimeofday (&start , NULL);

26

27 output = factorial(n) / (factorial (r)* factorial(n - r));

28

29 gettimeofday(&stop, NULL);

30 cout << " Total is: " << output << endl << "Total Time: " << stop.tv_usec - start.tv _usec << endl;

31 return 0;

32 }



it calculate factorial ...