A、B、C、D、E五名学生有有可能参加计算机竞赛,根据下列条件判断哪些人参加了竞赛:
(1)A参加时,B也参加;
(2)B和C只有一个人参加;
(3)c和d或者都参加,或者都不参加;
(4)d和e至少有一个人参加;
(5)如果e参加,那么a和d也都参加;
class Program
{
static void Main(string[] args)
{
Dowork();
}
public static void Dowork()
{
for (int i = 0; i < 32; i++)
{
if (Logic(i))
{
Console.Write("A:{0},B:{1},C:{2},D:{3},E:{4}", ((i & 16) >> 4) == 1 ? true : false, ((i & 8) >> 3) == 1 ? true : false, ((i & 4) >> 2) == 1 ? true : false, ((i & 2) >> 1) == 1 ? true : false, ((i & 1)) == 1 ? true : false);
Console.ReadKey();
}
}
}
public static bool Logic(int exp)
{
bool a = Convert.ToBoolean((exp & 16) >> 4);
bool b = Convert.ToBoolean((exp & 8) >> 3);
bool c = Convert.ToBoolean((exp & 4) >> 2);
bool d = Convert.ToBoolean((exp & 2) >> 1);
bool e = Convert.ToBoolean(exp & 1);
if (a == b && b != c && c == d && !(d == false && e == false))
{
if (e == true)
{
if (a == true && d == true)
{
return true;
}
else
return false;
}
else
return true;
}
return false;
}
}
难点在
bool a = Convert.ToBoolean((exp & 16) >> 4);
bool b = Convert.ToBoolean((exp &
>> 3);
bool c = Convert.ToBoolean((exp & 4) >> 2);
bool d = Convert.ToBoolean((exp & 2) >> 1);
bool e = Convert.ToBoolean(exp & 1);
简单解释:a,b,c,d,e参加了为true,反之false 用0 1表示; 所以总共就有32种情况 : a b c d e
0 0 0 0 0
0 0 0 0 1
0 0 0 1 0
.
.
.
1 1 1 1 1
这样的32种情况。
得到a的二进制值:(exp & 16) >> 4); 这个还不晓得怎么解释,自己先想,联合上面的表想!!不难想到!
分享到:
相关推荐
A、B、C、D、E五名学生有可能参加计算机竞赛,根据下列条件判断哪些人参加了竞赛: (1)A参加时,B也参加; (2)B和C只有一个人参加; (3)C和D或者都参加,或者都不参加; (4)D和E中至少有一...
A、B、C、D、E五名学生有可能参加计算机竞赛,根据下列条件判断哪些 人参加了竞赛: (1)A参加时,B也参加; (2)B和C只有一个人参加; (3)C和D或者都参加,或者都不参加; (4)D和...
A、B、C、D、E五名学生可能参加计算机竞赛,根据以下条件判断哪些人参加了竞赛: 1. 如果A参加,则B也参加; 2. B和C只有一个人参加; 3. C和D要么都参加,要么都不参加; 4. D和E中至少有一个人参加; 5. 如果E参加...
(27)有一堆鱼,由A、B、C、D、E五人先后进行分配。A第一个到来,他将鱼平分作5份,把多余的一条扔回湖中,拿走自己分好的一份回家去了;B第二个到来,也将鱼平分为5份,扔掉多余的一条,只拿走自己分好的一份;...
对于先根遍历A B C D E F和后根遍历F E D C B A,中根遍历可能是B A C E D F。 这些题目旨在测试小学生对计算机基础知识的掌握程度,涵盖范围广泛,既包括理论知识,也有实际应用的技能。通过这样的竞赛,可以激发...
### 第四届吉林省大学生程序设计竞赛 #### 一、赛事概览 第四届吉林省大学生程序设计竞赛(以下简称“省赛”)于2010年3...这些竞赛题目不仅有助于提升学生的理论知识水平,还能够增强他们在未来职业生涯中的竞争力。
1. 第一段代码是条件分支,根据输入的a+b的值决定是否修改a,最后输出d-c的值。 2. 第二段代码是循环结构,用于处理整数除法并打印余数。 3. 第三段代码是一个递归函数,用于计算斐波那契数列。 这些题目覆盖了信息...
- **选项**: A.1600 B.2000 C.4000 D.16000 - **知识点解析**: - 存储单位的基本换算关系为: 1GB = 1024MB。 - 8GB = 8 * 1024 MB = 8192 MB。 - 每张照片占用的空间为 2MB, 因此可以计算出: 8192 / 2 = 4096 张...
若元素a, b, c, d, e, f依次入栈并按b, d, f, e, c, a的顺序出栈,说明栈至少需要能同时容纳3个元素(例如b, d, f)。 8. **进制转换**:将十进制数转换为其他进制,例如四进制。 9. **字符串子串**:一个字符串的...
- **变量求解**:如何通过已知条件推导出未知数a、b、c、d、e的具体值。 - **逻辑推理**:通过对已给算式的观察和分析,找到解决问题的关键线索。 #### 题目二:算式重构与求解 - **题目概述**:要求参赛者根据...
蓝桥杯大赛是国内著名的计算机和软件类竞赛,主要面向大学生,考试内容涵盖算法与程序设计。这次提供的文件是第十一届蓝桥杯软件类决赛的C语言试题,包含了多个问题和对解题的具体要求。 首先,关于考试的规定,...
16. 出栈序列g, f, e, d, c, b, a是不可能的,因为栈是后进先出的数据结构,e不能在f之前出栈。 17. 归并排序的最坏情况比较次数是2n - 1。 18. 从2020年开始,NOIP竞赛不再支持Pascal语言。 19. 四个人生日在同...
本题给出了五个关于A、B、C、D、E五名学生参加计算机竞赛的情况描述,并要求根据这些条件推断出哪些学生参加了比赛。 **解题思路:** 1. **建立关系模型:** 首先根据题目条件列出所有可能的关系组合。 2. **逻辑...