我是靠谱客的博主 迷你胡萝卜,最近开发中收集的这篇文章主要介绍枚举算法6——谁在说谎,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

谁在说谎。张三说李四在说谎,李四说王五在说谎,王五说张三、李四都在说谎。请问到底谁在说谎。

【分析】

这是一个逻辑推理题,用正常的推理方法无法得出答案,我们可以先假设一个条件成立,然后根据这个条件进行推理,如果得出的结果不予条件矛盾,则说明假设条件成立;如果推出的结果与已知条件矛盾,则说明条件是错误的。这种方法在数学上交反证法。

如果张三说的是真话,则李四说的是假话,进一步推出王五说的是真话。如果李四说的是真话,则王五说的是假话,张三说的是假话。

code:

#include<stdio.h>
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,%3dn", a, b, c);
				if (b == 0)
					if (a == 1 && c == 1)
						if (a == 1 || b == 1)
							printf("%3d,%3d,%3dn", a, b, c);
				if (c == 0)
					if (a == 1 && b == 1)
						if (b == 0)
							printf("%3d,%3d,%3dn", a, b, c);
			}

	getchar();
}

结果:

 

最后

以上就是迷你胡萝卜为你收集整理的枚举算法6——谁在说谎的全部内容,希望文章能够帮你解决枚举算法6——谁在说谎所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(55)

评论列表共有 0 条评论

立即
投稿
返回
顶部