Question: Roman Roulette: Write this program in C++ Background The historian H relates how, in the conflict of 67 C.E., the Romans took the town of

Roman Roulette:

Write this program in C++

Background

The historian H relates how, in the conflict of 67 C.E., the Romans took the town of Jotapata which he was commanding. Escaping, He found himself trapped in a cave with 40 companions. The Romans discovered his whereabouts and invited him to surrender, but his companions refused to allow him to do so. He, therefore, suggested that they kill each other, one by one, the order to be decided by lot. Tradition has it that the means for effecting the lot was to stand in a circle, and, beginning at some point, count round, every third person being killed in turn. The sole survivor of this process was H, who then surrendered to the Romans. Which begs the question: had H previously practiced quietly with 41 stones in a dark corner, or had he calculated mathematically that he should adopt the 31st position in order to survive?

Having read an account of this gruesome event you become obsessed with the fear that you will find yourself in a similar situation at some time in the future. In order to prepare yourself for such an eventuality, you decide to write a program to run on your mobile phone which will determine the position in which you should stand to ensure that you will be the sole survivor.

In particular, your program should be able to handle the following processes. n > 0 people are initially arranged in a circle, facing inwards, and numbered from 1 to n clockwise. The numbering from 1 to n proceeds consecutively in a clockwise direction. Starting with person number 1, counting starts in a clockwise direction, until we get to person number k (k > 0), who is promptly killed. We then proceed to count a further k people in a clockwise direction, starting with the person immediately to the left of the victim (that is, the victims left). That kth person is killed next, and so on until only one person remains.

For example, when n = 5, and k = 1, the players are eliminated in order, and player 5 wins. If n = 5 and k = 2, the order of elimination is 2, 4, 1, 5, and player 3 wins. Note that players are not renumbered after each death: everyone keeps their initial number until the end (or their end).

Statement of Work

Write a program to solve the H problem for general values of n > 0 and k 0. Your program must read the values of n and k from cin and write the winners for to cout. Each problem will be on its own input line containing values for n and k (in that order). For each input problem, your program should output a single line containing only the number of the survivor (so youll know in which position to stand). Your program may assume that both n and k can be held by int variables

End Expected Output killed 3 killed 6 killed 9 killed 12 . . . the survivor is 31.

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!