枚举算法6——谁在说谎
谁在说谎。张三说李四在说谎,李四说王五在说谎,王五说张三、李四都在说谎。请问到底谁在说谎。
【分析】
这是一个逻辑推理题,用正常的推理方法无法得出答案,我们可以先假设一个条件成立,然后根据这个条件进行推理,如果得出的结果不予条件矛盾,则说明假设条件成立;如果推出的结果与已知条件矛盾,则说明条件是错误的。这种方法在数学上交反证法。
如果张三说的是真话,则李四说的是假话,进一步推出王五说的是真话。如果李四说的是真话,则王五说的是假话,张三说的是假话。
code:
#include
void main()
{int a, b, c;for (a = 0; a <= 1; a++)for (b = 0; b <= 1; b++)for (c = 0; c <= 1; c++){if (a == 0)if (b == 1)if (c == 0)if (a == 1 && b == 1)printf("%3d,%3d,%3d\n", a, b, c);if (b == 0)if (a == 1 && c == 1)if (a == 1 || b == 1)printf("%3d,%3d,%3d\n", a, b, c);if (c == 0)if (a == 1 && b == 1)if (b == 0)printf("%3d,%3d,%3d\n", a, b, c);}getchar();
}
结果:
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
