私はStroustrupの本の演習の1つに取り組んでいます。この演習では、ユーザーが「50未満ですか?」という質問をして、ユーザーが考えている1〜100の数値を推測するプログラムを設計する必要があります。など。答えを得るために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.";
}
}
}
}
}
}
}
フロー図のパスが1つしかないので、これは本当に悪いと思います。すでにこのプログラムはかなり長いです。これを行うためのより効率的な方法はありますか?