回答 2
投稿 2020/02/05 19:29
評価 -5
クリップ 2
VIEW 151
aya.mon
score 7
ある村に,Aさん,Bさん,Cさん,Dさんの4人がいました.このうち2人は嘘つき族であり,このうち2人は正直族であることが分かっています.嘘つき族は必ずうそをつき,正直族は必ず正直に答えます.彼らは,論理的であり,ミスはありません.
あなたの手元には, 1,2,3,4と書かれた4枚のカードがあります.同じ数字が書かれたカードはありません.そこからランダムに選んで,一人1枚ずつ,彼らに渡しました. 彼らは,以下のように発言しました.
Aさん:私のカードは,偶数です.
Bさん:私のカードは,3か4のどちらかです.
Cさん:Bさんは,正直族です.
Dさん:私のカードは,1です.
彼らに配られた可能性のあるカードの数字と,誰が嘘つき族/正直族かを表示するプログラムを作成します.
以下が現在のコードです.
#include<iostream>
#include<string>
using namespace std;
int card_a, card_b, card_c, card_d;
int liar_a, liar_b, liar_c, liar_d;
void output() {
cout << "配られたカード: ";
cout << card_a << ", " << card_b << ", " << card_c << ", " << card_d << ", ";
cout << "正直族[1],嘘つき族[0]:";
cout << liar_a << ", " << liar_b << ", " << liar_c << ", " << liar_d << endl;
}
int check() {
}
int main() {
for (card_a = 1; card_a < 5; card_a++) {
for (card_b = 1; card_b < 5; card_b++) {
if (card_b != card_a) {
for (card_c = 1; card_c < 5; card_c++) {
if (card_c != card_a && card_c != card_b) {
for (card_d = 1; card_d < 5; card_d++) {
if (card_d != card_a && card_d != card_b && card_d != card_c) {
if (check() == true) {
output();
}
}
}
}
}
}
}
}
cout << "プログラム終了時は何かを入力" << endl;
int x; cin >> x;
return 0;
}