首页 » 技术分享 » 逻辑推理之赵钱孙李周

逻辑推理之赵钱孙李周

 

题目描述:

赵、钱、孙、李、周五人围着一张圆桌吃饭。饭后,

周回忆说:“吃饭时,赵坐在钱旁边,钱的左边是孙或李”;

李回忆说:“钱坐在孙左边,我挨着孙坐”。

结果他们一句也没有说对。请问,他们在怎样坐的?

#include<stdio.h>

int left(int p,int q)
{
    return p+1==q||p==5&&q==1;
}
int right(int p,int q)
{
    return left(q,p);
}
int near(int p,int q)
{
    return left(p,q)||right(p,q);
}
int main()
{

    int zhao,qian,sun,li,zhou;
    zhao=1;
    for(qian=1;qian<=5;qian++)
    for(sun=1;sun<=5;sun++)
    for(li=1;li<=5;li++)
    for(zhou=1;zhou<=5;zhou++)
    {
        if(zhao!=qian&&zhao!=sun&&zhao!=li&&zhao!=zhou
           &&qian!=sun&&qian!=li&&qian!=zhou
           &&sun!=li&&sun!=zhou
           &&li!=zhou)
            {
                int zp=near(zhao,qian),zq=left(sun,qian)||left(li,qian);
                int lp=left(qian,sun),lq=near(li,sun);
                if(zp+zq+lp+lq==0)
                {
                    printf("%d %d %d %d %d\n",zhao,qian,sun,li,zhou);
                }
            }
    }

    return 0;
}

转载自原文链接, 如需删除请联系管理员。

原文链接:逻辑推理之赵钱孙李周,转载请注明来源!

1