Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdint.h>
- #include <stdio.h>
- /*
- Q2: The game of “Jump It” consists of a board with n positive integers
- in a row except for the first column, which always contains zero. These
- numbers represent the cost to enter each column. Here is a sample game
- board where n is 6:
- 0 3 80 6 57 10
- The object of the game is to move from the first column to the last
- column in the lowest total cost. The number in each column represents
- the cost to enter that column. You always start the game in the first
- column and have two types of moves. You can either move to the adjacent
- column or jump over the adjacent column to land two columns over. The
- cost of a game is the sum of the costs of the visited columns.
- In the board shown above, there are several ways to get to the end.
- Starting in the first column, our cost so far is 0. We could jump to
- 80, then jump to 57, then move to 10 for a total cost of 80+57+10 = 147.
- However, a cheaper path would be to move to 3, jump to 6, then jump to
- 10, for a total cost of 3+6+10 = 19.
- Write a recursive solution to this problem that computes the cheapest
- cost of the game and outputs this value for an arbitrarily large game
- board represented as an array. Your program doesn’t have to output the
- actual sequence of jumps, only the cheapest cost of this sequence.
- After making sure that your solution works on small arrays, test your
- solution on boards of larger and larger values of n to get a feel for
- how efficient and scalable your solution is.
- */
- int jumpIt(int game[5], int spot, int count)
- {
- int jumpValue = 0;
- int nextValue = 0;
- int i = spot;
- int jump = spot + 2;
- int next = spot + 1;
- if (i==5) return count;
- else
- nextValue = game[next];
- jumpValue = game[jump];
- if (jumpValue > nextValue)
- {
- count = nextValue + count;
- count = jumpIt(game, next, count);
- }
- else
- {
- count = jumpValue + count;
- count = jumpIt(game, jump, count);
- }
- return count;
- }
- void main()
- {
- int game[5];
- int i;
- int count;
- count = 0;
- i = 0;
- int result;
- game[0] = 0;
- game[1] = 3;
- game[2] = 80;
- game[3] = 6;
- game[4] = 57;
- game[5] = 10;
- result = jumpIt(game, i, count);
- printf("This is the result: %d", result);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement