1answer.
Ask question
Login Signup
Ask question
All categories
  • English
  • Mathematics
  • Social Studies
  • Business
  • History
  • Health
  • Geography
  • Biology
  • Physics
  • Chemistry
  • Computers and Technology
  • Arts
  • World Languages
  • Spanish
  • French
  • German
  • Advanced Placement (AP)
  • SAT
  • Medicine
  • Law
  • Engineering
Dimas [21]
3 years ago
8

Write code to complete PrintFactorial()'s recursive case. Sample output if userVal is 5:5! = 5 * 4 * 3 * 2 * 1 = 120

Computers and Technology
1 answer:
garik1379 [7]3 years ago
6 0

Answer:

Here is the C++ program:

#include <iostream>  //to use input output functions

using namespace std;   //to access objects like cin cout

void PrintFactorial(int factCounter, int factValue){  // method definition

  int nextCounter = 0;  // initialize value of nextCounter by 0

  int nextValue = 0;   // initialize value of nextValue by 0

  if (factCounter == 0) { //base case 1: 0! = 1          

     cout << "1" << endl;    }  //displays 1 in the output

  else if (factCounter == 1) {  //base case 2: 1! = 1  

     cout << factCounter << " = " << factValue << endl;    } //displays 1 in result    

  else {  //recursive case                          

     cout << factCounter << " * ";

     nextCounter = factCounter - 1;  //decrements factCounter by 1

     nextValue = nextCounter * factValue;  // multiplies values of nextCounter and factValue and assigns the result to nextValue

PrintFactorial( nextCounter,  nextValue);    } }  //recursively calls PrintFactorial method to compute the factorial

int main() {  //start of main function

  int userVal = 0;   //initialize the userVal variable to 0

  userVal = 5;  //assigns 5 to the userVal variable

  cout << userVal << "! = ";  //prints the userVal with ! =

  PrintFactorial(userVal, userVal); } //calls PrintFactorial method to compute the factorial of userVal i.e. 5

Explanation:

I will explain the logic of the program with an example.

The value of variable userVal is 5  

This is passed to the method PrintFactorial()

1st step:

void PrintFactorial(int factCounter, int factValue) becomes:  

PrintFactorial(5, 5)

PrintFactorial method has two base conditions which do not hold because the factCounter is 5 here which is neither 1 nor 0 so the program control moves to the recursive part.  

cout << factCounter << " * ";

In recursive part, the above statement prints the value of factCounter  followed by an asterisk on the output screen. So this prints:

5 *

nextCounter = factCounter - 1;

This statement decrements the value of factCounter by 1 and assigns it to nextCounter as:

nextCounter = 5 - 1;

nextCounter = 4

nextValue = nextCounter * factValue;  multiplies the value of nextCounter by factValue and stores result in nextValue . So

nextValue = 4 * 5  

nextValue = 20

PrintFactorial( nextCounter,  nextValue);  this statement calls the PrintFactorial() recursively to perform the above steps again until the base condition is reached. This statement becomes:  

PrintFactorial(4,20)

2nd step:

PrintFactorial method has two base conditions which do not hold because the factCounter is 4 here which is neither 1 nor 0 so the program control moves to the recursive part.  

cout << factCounter << " * ";

In recursive part, the above statement prints the value of factCounter  followed by an asterisk on the output screen. So this prints:

5* 4 *

nextCounter = factCounter - 1;

This statement decrements the value of factCounter by 1 and assigns it to nextCounter as:

nextCounter = 4 - 1;

nextCounter = 3

nextValue = nextCounter * factValue;  multiplies the value of nextCounter by factValue and stores result in nextValue . So

nextValue = 3 * 20

nextValue = 60

PrintFactorial( nextCounter,  nextValue);   This statement becomes:  

PrintFactorial(3,60)

3rd step:

PrintFactorial method has two base conditions which do not hold because the factCounter is 3 here which is neither 1 nor 0 so the program control moves to the recursive part.  

cout << factCounter << " * ";

In recursive part, the above statement prints the value of factCounter  followed by an asterisk on the output screen. So this prints:

5* 4 * 3 *

nextCounter = factCounter - 1;

This statement decrements the value of factCounter by 1 and assigns it to nextCounter as:

nextCounter = 3 - 1;

nextCounter = 2

nextValue = nextCounter * factValue;  multiplies the value of nextCounter by factValue and stores result in nextValue . So

nextValue = 2 * 60

nextValue = 120

PrintFactorial( nextCounter,  nextValue);  This statement becomes:  

PrintFactorial(2,120)

4th step:

PrintFactorial method has two base conditions which do not hold because the factCounter is 2 here which is neither 1 nor 0 so the program control moves to the recursive part.  

cout << factCounter << " * ";

In recursive part, the above statement prints the value of factCounter  followed by an asterisk on the output screen. So this prints:

5* 4 * 3 * 2 *

nextCounter = factCounter - 1;

This statement decrements the value of factCounter by 1 and assigns it to nextCounter as:

nextCounter = 2 - 1;

nextCounter = 1

nextValue = nextCounter * factValue;  multiplies the value of nextCounter by factValue and stores result in nextValue . So

nextValue = 1 * 120

nextValue = 120

PrintFactorial( nextCounter,  nextValue);  This statement becomes:  

PrintFactorial(1,120)

Now the base case 2 evaluates to true because nextCounter is 1

cout << factCounter << " = " << factValue  statement prints the value of factCounter i.e. 1 followed by an equal sign = followed by value of factValue i..e 120

So the output of the above program with userVal = 5 is:  

5! = 5 * 4 * 3 * 2 * 1 = 120

You might be interested in
Make and run a Python program which:
PSYCHO15rus [73]

Answer:

ok

Explanation:

6 0
2 years ago
In the SDLC's third phase, the way in which a proposed information system will deliver the general abilities described in the pr
kifflom [539]

Answer: Detailed

Explanation:

SDLC consist of 7 phases. They are:

1. Planning.

2. System analysis and requirement

3. Design:

4. Coding:

5. Testing:

6. Installation

7. Maintenance

Here we are talking of the third phase. In this phase it is the design phase which consist of high and low level design. Here the preliminary design is included in high level design where it describes the required hardware, software, network capabilities and the modelling of the interface. However the detailed design in low level design will implement the coding and will finding of any errors in the implemented design as described by the preliminary design.

3 0
3 years ago
What are the 49 questions for creat and edit Excel assessment​
castortr0y [4]

Answer:

1. What is the keyboard shortcut key to lock cell references in a formula

2. What are the shortcut keys for Auto Sum?

3. What are the shortcut keys to insert a new row in an Excel spreadsheet?

4. What are the shortcut keys to group rows so you can expand/contract a section of data?

5. Which of the following Excel features allows you to select/highlight all cells that are formulas?

6. What are the keyboard shortcut keys to paste special?

7. Assuming cell A1 is displaying the number "12000.7789". What formula should be used to round this number to the closest integer?

8. What are the keyboard shortcut keys to edit formula in a cell?

9. What are the keyboard shortcut keys to insert a table?

10. In which tab of the ribbon can you change Workbook Views to Page Break Preview?

11. What is the best practice for financial modeling in excel?

12. Which of the following features cannot be found in the Data ribbon?

13. The shortcut keys to increase the number of decimal places are

14. What are the shortcut keys to open up the Find and Replace window?

15. Which tab of the ribbon should you go to for removing grid lines on a worksheet?

16. What is a cell address in Excel?

17. What do you mean by Relative cell referencing and Absolute cell referencing in MS Excel?

18. How can you restrict someone from copying a cell from your worksheet?

19. How is a Formula different from a Function in Excel?

20. Mention the order of operations used in Excel while evaluating formulas.

21. What is the difference between count, counta, and countblank?

22. What is the shortcut to add a filter to a table?

23. How can we merge multiple cells text strings in a cell?

24. How many report formats are available in Excel?

25. What is a Pivot Table?

26. How do you find duplicate values in a column?

27. How can you remove duplicate values in a range of cells?

28. What are the wildcards available in Excel?

29. What is Data Validation? Illustrate with an example.

30. How do you create a column in a pivot table?

31. How does a Slicer work in Excel?

32. What are macros in Excel?

33. What is the What-If Analysis in Excel?

34. What is the difference between a function and a subroutine in VBA?

35. What is the difference between This Workbook and Active Workbook in VBA?

36. How do we check whether a file exists or not in a specified location?

37. Write a VBA function to calculate the area of a rectangle.

38. Write a VBA function to check if a number is a prime number or not.

Explanation:

I think these questions are enough for you.

4 0
2 years ago
Your company has decided to implement a wireless network. The wireless network users must be able to connect to resources on you
Brums [2.3K]

Options:

A Infrastructure mode

B Ad hoc mode

C a wireless access point

D static IP addresses

E APIPA

Answer:

A. Infrastructure mode

C. a wireless access point

Explanation: A DHCP is a server that makes use of s standard protocol called dynamic host configuration protocol to automatically assign internet protocol (IP) addresses and other computer parameters to clients. It gives them the opportunity to effectively make use of other network services such as DNS( domain name system) and NTP(network time protocol).

8 0
3 years ago
When working with a large worksheet, you can split the window into ____ panes.?
krek1111 [17]
When working with a large worksheet, you can split the window into two or four panes.
5 0
3 years ago
Other questions:
  • An automobile battery, when connected to a car radio, provides 12.5 V to the radio. When connected to a set of headlights, it pr
    11·1 answer
  • To insert a clip art you must do the following
    14·1 answer
  • Libby wrote an email to her friend. She pressed Shift and the number key 2 together to enter the email address. Which symbol did
    7·2 answers
  • Which loan type requires you to make loan payments while you’re attending school?
    7·1 answer
  • How can i become an ailen?
    5·2 answers
  • Explain the nature of documents that can be suitable for merging
    7·1 answer
  • Write a generic C++ function that takes an array of genericelements and a scalar of the same type as the array elements. Thetype
    13·1 answer
  • The cat store needs your help! The base class Animal has private fields animalName, and animalAge. The derived class Cat extends
    9·1 answer
  • How do i delete cookies on a chromebook?
    8·1 answer
  • There is a group of 10 people who are ordering pizza. If each person gets 2 slices and each pizza has 5 slices, how many pizzas
    9·1 answer
Add answer
Login
Not registered? Fast signup
Signup
Login Signup
Ask question!