还记得小学时候折磨你的真假话排名次问题吗,总有人之说一半真话,我们还得推理一会儿。
现在可以直接用编程方法做出来实在是太爽了,话不多说先上代码
#include<stdio.h>;
int main()
{
int a,b,c,d,e;
for(a=1;a<=5;a++)
{
for(b=1;b<=5;b++)
{
for(c=1;c<=5;c++)
{
for(d=1;d<=5;d++)
{
for(e=1;e<=5;e++)
{
if(((b==2)+(a==3)==1)
&&((b==2)+(e==4)==1)
&&((d==2)+(c==1)==1)
&&((c==5)+(d==3)==1)
&&((a==1)+(e==4)==1))
{
if(a*b*c*d*e==1*2*3*4*5)
printf("a=%d\nb=%d\nc=%d\nd=%d\ne=%d\n",a,b,c,d,e);
}
}
}
}
}
}
return 0;
}
假话是0,真话是1,加起来==1,用for循环就能轻松解决问题。
答案如下: