【发布时间】:2014-07-18 02:44:38
【问题描述】:
我正在处理 Stroustrup 书中的一个练习,我必须设计一个程序来猜测用户通过提问来思考的 1-100 之间的数字,即“它是否小于 50?”等等。我最多只能问 7 个问题才能得到答案。
到目前为止,我有这样的事情:
string answer;
cout << "Think of a number between 1 and 100.\n";
cout << "Is it even or odd? (E/O)\n";
cin >> answer;
if (answer == "E")
{
cout << "Is it less than 50? (Y/N)\n";
cin >> answer;
if (answer == "Y")
{
cout << "Is it less than 25? (Y/N)\n";
cin >> answer;
if (answer == "Y")
{
cout << "Is it less than 15? (Y/N)\n";
cin >> answer;
if (answer == "Y")
{
cout << "Is it less than 9? (Y/N)\n";
cin >> answer;
if (answer == "Y")
{
cout << "Is it less than 5? (Y/N)\n";
cin >> answer;
if (answer == "Y")
{
cout << "Is it less than 3? (Y/N)\n";
cin >> answer;
if (answer == "Y")
{
cout << "Your number is 2.";
}
}
}
}
}
}
}
我觉得这真的很糟糕,因为我只有一个流程图的路径,而且这个程序已经很长了。有没有更有效的方法来做到这一点?
【问题讨论】:
-
我选99.....程序结束。
-
就像我说的我还没有完成它......它只是树的 1 条路径
标签: if-statement binary-tree performance