这篇文章里将不断更新本人在编程语言的学习中遇到的逻辑推理题。
2014/3/5
1.甲乙丙3位球迷分别猜测半决赛中ABCD四人的名次,如下:
甲:A1B2
乙:C1D3
丙:D2A3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 |
#include<iostream> using
namespace std; int main() { int a,b,c,d; for (a=1;a<5;a++) for (b=1;b<5;b++) for (c=1;c<5;c++) for (d=1;d<5;d++) if ( (a==1) + (b==2)==1 && (c==1) + (d==3)==1 && (d==2) + (a==3)==1 && (a==b)+(a==c)+(a==d)+(b==c)+(b==d)+(c==d)==0 ) { cout<< "a=" <<a<< " b=" <<b<< " c=" <<c<< " d=" <<d<<endl; return
0; } return
1; } |
结果:a=3 b=2 c=1 d=4
2.日本某地发生了一件谋杀案,警察通过排查确定杀人凶手必为4个嫌疑犯的一个。以下为4个嫌疑犯的供词。
A说:不是我。
B说:是C。
C说:是D。
D说:C在胡说
已知3个人说了真话,1个人说的是假话。现在请根据这些信息,写一个程序来确定到底谁是凶手。
#include<stdio.h> int main() { for(int killer=‘A‘;killer<=‘D‘;killer++) if( (killer!=‘A‘)+(killer==‘C‘)+(killer==‘D‘)+(killer!=‘D‘)==3 ) { printf("The killer is %c",killer); return 0; } return 1; }
结果:The killer is C
原文:http://www.cnblogs.com/moi7/p/3583177.html