Write a C++ program that asks the user to choose a number
between 1 and 1000. Then,
your program should be able to guess the number by asking
the user no more than 10 yes/no
questions. Use a while loop in your program
Answer Posted / i4o
Instead of giving the full program the expectation of this question could be logical skills or applying heuristics in deducing the given problem domain (1-1000) in to smaller pieces. The decision tree could be like whether the number could be even or odd thus eliminating 50% then based on number of digits etc. But it expects to use while loop. So it should be solved mathematically. The following snippet (C#) uses the something similar to binary search (Cutting the problem domain exactly by half each time) and any number could be cracked with 10 questions.
static void Main(string[] args)
{
int low = 1, high = 1000;
int mean;
string userresponse;
while (low != high)
{
mean = (low + high) / 2;
Console.WriteLine("Is the number between {0} & {1}", low, mean);
userresponse = Console.ReadLine();
if (userresponse.CompareTo("y") == 0)
{
high = mean;
}
else
{
low = mean+1;
}
}
Console.Write("You Guessed : {0}", low);
Console.Read();
}
| Is This Answer Correct ? | 4 Yes | 0 No |
Post New Answer View All Answers
What are c++ files?
Is vector a class in c++?
What are the uses of pointers?
how to access grid view row?
Is sorted c++?
If dog is a friend of boy, and terrier derives from dog, is terrier a friend of boy?
What are references in c++?
What is wrapper class in c++?
Why do we need c++?
What is the most useful programming language?
What are iterators in c++?
What is pair in c++?
Differentiate between declaration and definition.
Differentiate between an external iterator and an internal iterator? What is the advantage of an external iterator.
What is the difference between the functions memmove() and memcpy()?