Algorithms in C++: Assignment 3 Solution

$29.99 $18.99

1. Objective Your goal is to write a program that will give you practice with recursion and vectors in C++. 2. Problem You have been asked to find the number of different ways to climb an n-stair staircase. You are allowed to move up 1, 2, or 3 stairs at a time. You must also…

You’ll get a: . zip file solution

 

 

Description

Rate this product

1. Objective

Your goal is to write a program that will give you practice with recursion and vectors in C++.

2. Problem

You have been asked to find the number of different ways to climb an n-stair staircase. You are allowed to move up 1, 2, or 3 stairs at a time. You must also output how to climb all n stairs. For instance, there are 4 ways to climb 3 stairs, as seen below:

4 ways to climb 3 stairs.

  1. [1, 1, 1]

  2. [1, 2]

  3. [2, 1]

  4. [3]

Here are some examples of how the program should run:

Case 1: No input arguments

Print usage message.

$ ./stairclimber

Usage: ./stairclimber <number of stairs>

Case 2: Too many input arguments

Print usage message.

$ ./stairclimber 3 4 5

Usage: ./stairclimber <number of stairs>

Case 3: Bad input

$ ./stairclimber Howdy

Error: Number of stairs must be a positive integer.

Case 4: Bad input

$ ./stairclimber 0

Error: Number of stairs must be a positive integer.

Case 5: Valid

$ ./stairclimber 1

1 way to climb 1 stair.

1. [1]

Case 6: Valid (Notice the labels are right-aligned to the width of the highest label. You should do the same for labels that go up to any size.)

$ ./stairclimber 5

13 ways to climb 5 stairs.

  1. [1, 1, 1, 1, 1]

  2. [1, 1, 1, 2]

  3. [1, 1, 2, 1]

  4. [1, 1, 3]

    1. [1, 2, 1, 1]

    2. [1, 2, 2]

    3. [1, 3, 1]

    4. [2, 1, 1, 1]

    5. [2, 1, 2]

    6. [2, 2, 1]

    7. [2, 3]

    8. [3, 1, 1]

    9. [3, 2]

  1. Advice

Start this project early. Even though there aren’t that many lines of code in the solution, working with recursion and nested vectors can get tricky.