Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

Write a program in c++ Purpose In this problem, you will learn how to use a computer to solve a thorny historical problem. You will

Write a program in c++

image text in transcribed

Purpose In this problem, you will learn how to use a computer to solve a thorny historical problem. You will also get to exercise your programming and think before coding" skills. Background The historian Hrelates how, in the conflict of 67 C.E., the Romans took the town of Jotapata which he was commanding. Escaping, Hfound 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 victim's 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 k20. 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 you'll know in which position to stand). Your program may assume that both n and k can be held by int variables OUTPUT (Note I have numbered my data from 0 to n-1, but final answer is adjusted by 1 for actual position) Please enter number of people and step:52 finding live 0 incrementing to 1 killed 1 finding live 2 incrementing to 3 killed 3 finding live 4 incrementing to 0 killed 0 finding live 2 incrementing to 4 killed 4 survivor is #3

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access with AI-Powered Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Students also viewed these Databases questions