代码
using System;
using System.Collections.Generic;
using System.Text;
/*
公安人员审问四名窃贼嫌疑犯。已知,这四人当中仅有一名是窃贼,还知道这四人中每人要么是诚实的,要么总是说谎的。在回答公安人员的问题中:
甲说:“乙没有偷,是丁偷的。”
乙说:“我没有偷,是丙便的。”
丙说:“甲没有偷,是乙偷的。”
丁说:“我没有偷。”
请根据这四人的答话判断谁是盗窃者。
*/
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
//假设窃贼为1,,非窃贼为0,递归假设各种情况
int[] a = new int[4];
for (int i = 0; i < 4;i++ )
{
for (int j = 0; j < 4; j++)
{
if (j == i)
{
a[j] = 1;
}
else
{
a[j] = 0;
}
}
//对每一项递归的情况进行判断
if ((a[1] + a[3] == 1) && (a[1] + a[2] == 1) && (a[0] + a[1] == 1))//其中甲、乙、丙三个人无论有没有说谎,他们话里所描述的人必有一个是窃贼
{
for (int k = 0; k < 4; k++)
{
//;
string strDisplayName="";
if (a[k] == 1)
{
switch (a[k])
{
case 0:
strDisplayName = "甲";
break;
case 1:
strDisplayName = "乙";
break;
case 2:
strDisplayName = "丙";
break;
case 3:
strDisplayName = "丁";
break;
}
Console.WriteLine("我觉得吧犯人应该是:{0}", strDisplayName);
}
}
}
}
}
}
}