这里举两个简单的
1.
例子
这一道是较为简单的益智游戏题,如何用c语言实现?
首先要举出全部情况让计算机来快速排除筛选
for(a=1;a<=5;a++)
{
for (b = 1; b <= 5; a++)
{
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) &&
((c == 1) + (d == 2) == 1) &&
((c == 5) + (d == 3) == 1) &&
((e == 4) + (a == 1) == 1))
printf("a=%d,b=%d,c=%d,d=%d,e=%d\n ", a, b, c, d, e);
这一步是关键,表示只有一个对
然后有两种情况,我们发现第一个b=c=1,a=d=3肯定不符合要求
我们还要一个限制条件
if (a*b*c*d*e==120)//当然如果还排不干净还可以加上a+b+c+d+e==15;
if (((b == 2) + (a == 3) == 1) &&
((b == 2) + (e == 4) == 1) &&
((c == 1) + (d == 2) == 1) &&
((c == 5) + (d == 3) == 1) &&
((e == 4) + (a == 1) == 1))
{ if (a*b*c*d*e==120)
printf("a=%d,b=%d,c=%d,d=%d,e=%d\n ", a, b, c, d, e);}
2.
根据上面的思路我们可以写出
#include<stdio.h>
int main()
{
int a = 0, b = 0, c = 0, d = 0;
for(a=0;a<=1;a++)
for(b=0;b<=1;b++)
for(c=0;c<=1;c++)
for (d = 0; d <= 1; d++)
{
if ((a == 0) + (c == 1) + (d == 0) + (d != 0) == 3)
if(a+b+c+d==1)
printf("a=%d,b=%d,c=%d,d=%d\n",a,b,c,d );
}
}
//1是凶手,0不是凶手