兔子尼克、马克、马尼、波力四兄妹个头差不多,长得很像。一天,格
莱尔到他们家玩,他们让格莱尔猜谁大谁小。格莱尔第1次猜:马克老大,波力
最小,马尼老三,尼克老二;第2次猜:波力老大,马克最小,马尼老二,尼克
老三;第3次猜:波力最小,马克老三;第4次猜:马克老大,尼克最小,波力
老三,马尼老二。格莱尔每次仅猜对了一半。
请设计并实现一算法,算一算这四兄妹的真实大小。
穷举呗,把四兄妹排名穷举,然后看看哪个排名符合三种选择各对一半的情况
#include <stdio.h>
int main()
{
int a,b,c,d;
int i,j,m,n;
//兔子尼克、马克、马尼、波力
for(i=1;i<=4;i++)
{
for(j=1;j<=4;j++)
{
if(i==j)
continue;
for(m=1;m<=4;m++)
{
if(m==i || m==j)
continue;
for(n=1;n<=4;n++)
{
if(n==i || n==j || n==m)
continue;
a=(j==1);
b=(n==4);
c=(m==3);
d=(i==2);
if(a+b+c+d != 2)
continue;
a=(n==1);
b=(j==4);
c=(m==2);
d=(i==3);
if(a+b+c+d != 2)
continue;
a=(j==1);
b=(i==4);
c=(n==3);
d=(m==2);
if(a+b+c+d != 2)
continue;
a=(n==4);
b=(j==3);
if(a+b != 1)
continue;
printf("尼克:%d,马克:%d,马尼:%d,波力:%d\n",i,j,m,n);
}
}
}
}
return 0;
}