逻辑推断题
来源:互联网 发布:敢爱敢恨的女人 知乎 编辑:程序博客网 时间:2024/05/01 02:48
/**A, B, C, D, E, F, G, H, I, J 共有10名同学参加本次计算机竞赛,也可能不参加,他们是否参加受到以下条件的约束:(1): 如果A参加,那么B也参加;(2):如果C不参加, D也不参加;(3):A 和 C只能有一个参加;(4):B 和 D有且只能有一个参加;(5):D,E,F,G,H 中至少有2个人参加;(6):C 和 G都参加,或者都不参加;(7):C,E,G,I中至多有2个人参加;(8):如果E参加,F,G也参加;(9):如果F参加,G,H就不能参加;(10):如果I,J都不参加,H必须参加;请用编程判断这10名同学的参赛名单,结果有很多种,请一一列出,每种情况单独占一行,每个同学按字典顺序输出,彼此之间之间用空格隔开;如:C D G I*/#include <iostream>#include <cstring>#include <cstdio>using namespace std;const int MAXN = 15;//a b c d e f g h i j//0 1 2 3 4 5 6 7 8 9int Judge(int* a ){ int t0, t1, t2, t3, t4, t5, t6, t7, t8, t9; t0 = a[0] == 0 || a[1] == 1;//a -> b <==> ~a || b t1 = a[2] == 1 || a[3] == 0; t2 = a[0] + a[2] <= 1; t3 = a[1] + a[3] == 1; t4 = a[3] + a[4] + a[5] + a[6] + a[7] >= 2; t5 = (a[2] + a[6] == 2) || (a[2] + a[6] == 0); t6 = a[2] + a[4] + a[6] + a[8] <= 2; t7 = a[4] == 0 || (a[5] + a[6] == 2); t8 = a[5] == 0 || (a[6] + a[7] == 0); t9 = (a[8] + a[9] == 1) || a[7] == 1; return t0 && t1 && t2 && t3 && t4 && t5 && t6 && t7 && t8 &&t9;}void Print(int a[]){ for(int i = 0; i < 10; ++i) if(a[i]) printf("%c ", i + 'A'); cout<<endl;}void Find_Ans(int* a, int n){ if(n >= 10) { if(Judge(a)) Print(a); return; } a[n] = 0; Find_Ans(a, n+1); a[n] = 1; Find_Ans(a, n+1);}int main(){ int aa[MAXN]; memset(aa, 0, sizeof(aa)); Find_Ans(aa, 0); return 0;}
0 0
- 蓝桥杯逻辑推断题
- 逻辑推断题
- 逻辑推断
- 逻辑推断
- 蓝桥杯 逻辑推断类型题目
- 全国软件设计大赛题目-逻辑推断题目
- 蓝桥杯 逻辑推断 DFS+n个if
- 分析推断题
- 根据数据库的结构来推断他的逻辑功能
- POJ-1029简单推断题
- 第一轮笔试中的数学推断题
- Chess Queen(数学推断题)
- 第二十二题(牌色推断问题)
- t检验与F检验 /统计常识 / 统计学笔记(2)--随机抽样与统计推断的逻辑
- 逻辑题
- 逻辑题
- 逻辑题
- 逻辑题
- java 异常
- C++游戏开发需要阅读的书籍
- sql server日期时间转字符串
- 斗地主算法(2)
- Tomcat 8(一)Tomcat常用配置
- 逻辑推断题
- 几种常用容器元素删除的方法
- VS下配置opencv以及GTK
- 游戏程序员养成计划
- 返回历史页面
- 如何按部就班的学习Linux?
- 文本内容判断
- easyui layout+tab+tree实现网站基本布局
- URL