In an ancient land, the beautiful princess Eve had many suitors. She
decided on the following procedure to determine which suitor she would
marry. First, all of the suitors would be lined up one after the other and
assigned numbers. The first suitor would be number 1, the second number
2, and so on up to the last suitor, number n. Starting at the first suitor she
would then count three suitors down the line (because of the three letters in
her name) and the third suitor would be eliminated from winning her
hand and removed from the line. Eve would then continue, counting three
more suitors, and eliminate every third suitor. When she reached the end of
the line she would continue counting from the beginning.
For example, if there were six suitors then the elimination process would
proceed as follows:
123456 initial list of suitors, start counting from 1
12456 suitor 3 eliminated, continue counting from 4
1245 suitor 6 eliminated, continue counting from 1
125 suitor 4 eliminated, continue counting from 5
15 suitor 2 eliminated, continue counting from 5
1 suitor 5 eliminated, 1 is the lucky winner
Write a program that creates a circular linked list of nodes to determine which
position you should stand in to marry the princess if there are n suitors. A
circular linked list is a linked list where the link field of the last node in the
list refers to the node that is the head of the list. Your program should
simulate the elimination process by deleting the node that corresponds to the
suitor that is eliminated for each step in the process. Consider the possibility
that you may need to delete the “head” node in the list.
Sorry the answer is not available at the moment…
If you are able to find the answer, please make sure to post it here. So that your Juniors have smile on their lips and feel happy.
Spread the 'tradition of sharing'.