警察局抓住了A、B、C、D四名盗窃嫌疑犯,其中只有一人是小偷。在审问时,A说:“我不是小偷”;B说:“C是小偷”;C说:“小偷肯定是D”;D说:“C在冤枉好人”。现在已经知道这四人中有三人说的是真话,一人说的是假话。请问到底谁是小偷?
分析:a,b,c,d四变量,穷举后判定条件。a==0,c==1,d==1,d==0
代码:
/*谁是小偷*/
#include <stdio.h>
int main()
{
int a,b,c,d;
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==1)+(d==0)==3)&&(a+b+c+d)==1)
printf("%d %d %d %d",a,b,c,d);
return 0;
}
【项目9-污损的单据】(1)有等式[※×(※3+※)]2=8※※9,其中※处为1个数字,滴上了墨水无法辨认。请编程找出※表示哪个数字。
分析:太简单了 没有分析
代码:
/*污损的单据*/
#include <stdio.h>
int main()
{
int a,b,c,d,e,n;
for(a=1;a<=9;a++)
for(b=0;b<=9;b++)
for(c=0;c<=9;c++)
for(d=0;d<=9;d++)
for(e=0;e<=9;e++)
{
n=a*(b*10+3+c);
if(n*n==(8*1000+d*100+e*10+9))
printf("[%d*(%d3+%d)]^2=8%d%d9\n",a,b,c,d,e);
}
return 0;
}
(2)有等式[※×(※3○※)]2=8※※9,其中※处为1个数字,○处为+、-、×、÷四个运算符之一,现滴上了墨水无法辨认。请编程找出※表示哪个数字,○表示哪个运算符。
分析:还是没有分析
代码:
/*污损的单据*/
#include <stdio.h>
int main()
{
int a,b,c,d,e,n,n1,n2,n3,m;
for(a=0;a<=9;a++)
for(b=0;b<=9;b++)
for(c=0;c<=9;c++)
for(d=0;d<=9;d++)
for(e=0;e<=9;e++)
{
m=8*1000+d*100+e*10+9;
n=a*(b*10+3+c);
n1=a*(b*10+3-c);
n2=a*((b*10+3)*c);
if(c!=0)
n3=a*((b*10+3)/c);
if(n*n==m)
printf("[%d*(%d3+%d)]^2=8%d%d9\n",a,b,c,d,e);
if(n1*n1==m)
printf("[%d*(%d3-%d)]^2=8%d%d9\n",a,b,c,d,e);
if(n2*n2==m)
printf("[%d*(%d3*%d)]^2=8%d%d9\n",a,b,c,d,e);
if(n3*n3==m&&(b*10+3)%c==0)
printf("[%d*(%d3/%d)]^2=8%d%d9\n",a,b,c,d,e);
}
return 0;
}
40节 结束了 !~