算法中8枚硬币问题
题目:在8枚外观相同的硬币中,有一枚是假币,并且已知假币真币的重量不同,假设假币比真币的重量轻,可以通过一架天平来比较检测,设计一个高效的算法来检测这枚假币!!!!
求用c#写的这 8枚硬币的算法!!!
程序代码: static void Main(string[] args)
{
//真币为1,假币为0,顺序任意
int[] arr = new int[] { 1, 1, 1, 0, 1, 1, 1, 1 };
if ((arr[0] + arr[1] + arr[2]) == (arr[3] + arr[4] + arr[5]))
{
if (arr[6] < arr[7])
{
Console.WriteLine("第7个是假币");
}
else
{
Console.WriteLine("第8个是假币");
}
}
else if ((arr[0] + arr[1] + arr[2]) < (arr[3] + arr[4] + arr[5]))
{
if (arr[0] == arr[1])
{
Console.WriteLine("第3个是假币");
}
else if (arr[0] < arr[1])
{
Console.WriteLine("第1个是假币");
}
else
{
Console.WriteLine("第2个是假币");
}
}
else
{
if (arr[3] == arr[4])
{
Console.WriteLine("第6个是假币");
}
else if (arr[3] < arr[4])
{
Console.WriteLine("第4个是假币");
}
else
{
Console.WriteLine("第5个是假币");
}
}
Console.Read();
}