逻辑代码题:五个学生参加计算机比赛

题目:

A、B、C、D、E五名学生有可能参加计算机竞赛,根据下列条件判断哪些人参加了竞赛:
(1)A参加时,B也参加;
(2)B和C只有一个人参加;
(3)C和D或者都参加,或者都不参加;
(4)D和E中至少有一个人参加;
(5)如果E参加,那么A和D也都参加。

思路:

1. A = 1 then B = 1 ; A= 0 then B = 1 or 0

2. B = 1 then C = 0 ;  B = 0 then C = 1;

3. C = D ( C + D = 1 or C + D = 0 )

4. D + E >= 1

5.E = 1 then A = B = 1

 1  static void Main(string[] args)
 2         {
 3             //0 is false ,1 is true.
 4             string[] name = { "A", "B", "C", "D", "E" };
 5             int[] i = new int[5];
 6             for (i[0] = 0; i[0] < 2; i[0]++)
 7             {
 8                 for (i[1] = 0; i[1] < 2; i[1]++)
 9                 {
10                     for (i[2] = 0; i[2] < 2; i[2]++)
11                     {
12                         for (i[3] = 0; i[3] < 2; i[3]++)
13                         {
14                             for (i[4] = 0; i[4] < 2; i[4]++)
15                             {
16                                 if ((i[0] <= i[1]) && (i[1] + i[2] == 1) && (i[2] == i[3]) && (i[3] + i[4] >= 1) &&
17                                     (i[4] == 0 || i[4] + i[0] + i[3] == 3))
18                                 {
19                                     int index = 0;
20                                     foreach (var a in i)
21                                     {
22                                         if (a == 1)
23                                         {
24                                             Console.WriteLine(name[index] + " will join");
25                                         }
26
27                                         else
28                                         {
29                                             Console.WriteLine(name[index] + " will not join");
30                                         }
31                                         index++;
32                                     }
33
34                                 }
35                             }
36                         }
37                     }
38                 }
39             }
40             Console.ReadKey();
41         }

运行结果:

时间: 2024-10-09 00:33:17

逻辑代码题:五个学生参加计算机比赛的相关文章

逻辑代码题:如果昨天是明天,那今天就是周五了

题目:I wish yesterday is tomorrow, then today is Friday. What is the actual date today? 思路:1.我希望昨天是明天,也就是说 假设的昨天 是 实际的明天 : yesterday=tomorrow 2.实际的明天 就是 假设的今天-1 : tomorrow=today-1 3. 假设的今天是周五:today=5 1 //wish today is 5,so wish yesterday is 4 .actual t

mysql练习题-查询同时参加计算机和英语考试的学生的信息-遁地龙卷风

(-1)写在前面 文章参考http://blog.sina.com.cn/willcaty. 针对其中的一道练习题想出两种其他的答案,希望网友给出更多回答. (0) 基础数据 student表 +-----+--------+------+-------+------------+--------------+ | id  | name   | sex  | birth | department | address      | +-----+--------+------+-------+--

面试题收集-java面试题及答案(基础题122道,代码题19道)

JAVA相关基础知识1.面向对象的特征有哪些方面?1.抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面.抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节.抽象包括两个方面,一是过程抽象,二是数据抽象.2.继承:继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法.对象的一个新类可以从现有的类中派生,这个过程称为类继承.新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类).派

经典算法题每日演练——第二题 五家共井

原文:经典算法题每日演练--第二题 五家共井 古代数学巨著<九章算数>中有这么一道题叫“五家共井,甲二绠(汲水用的井绳)不足,如(接上)乙一绠:乙三绠不足,如丙一绠: 丙四绠不足,如丁一绠:丁五绠不足,如戊一绠:戊六绠不足,如甲一绠,皆及. 意思就是说五家人共用一口井,甲家的绳子用两条不够,还要再用乙家的绳子一条才能打到井水:乙家的绳子用三条不够,还要再用丙家的绳子 一条才能打到井水:丙家的绳子用四条不够,还要再用丁家的绳子一条才能打到井水:丁家的绳子用五条不够,还要再用戊家的绳子一条才能打

有五个学生,每个学生有3门课的成绩,从键盘输入以上数据(包括学生号,姓名,三门课成绩),计算出平均成绩,况原有的数据和计算出的平均分数存放在磁盘文件

* 题目:有五个学生,每个学生有3门课的成绩,从键盘输入以上数据(包括学生号,姓名,三门课成绩),计算出平均成绩,况原有的数据和计算出的平均分数存放在磁盘文件 public class 第五十题保存学生成绩 { public static void main(String[] args) throws IOException { //保存学生成绩到文件stud中 int stuId = 0; //学号 String stuName = null;//姓名 int grade1 = 0;//第一门

JSBinding+Bridge:逻辑代码中操作二进制数据

以这2个函数为例 class File { public static byte[] ReadAllBytes(string path); public static void WriteAllBytes(string path, byte[] data); } 如果不做特殊处理,ReadAllBytes在返回数据给Js时,是一个字节一个字节拷贝给Js的数组.这样性能是极差的.并且,大多数情况下,逻辑代码中不需要直接修改2进制数据,而只是拿着而已. 因此,不要直接使用上面的2个函数. 以下是一个

有五个学生,每个学生有3门课(语文、数学、英语)的成绩, * 写一个程序接收从键盘输入学生的信息,输入格式为:name,30,30,30(姓名,三门课成绩)

/* * 3. 有五个学生,每个学生有3门课(语文.数学.英语)的成绩, * 写一个程序接收从键盘输入学生的信息,输入格式为:name,30,30,30(姓名,三门课成绩), * 然后把输入的学生信息按总分从高到低的顺序写入到一个名称"stu.txt"文件中. * 要求:stu.txt文件的格式要比较直观,打开这个文件,就可以很清楚的看到学生的信息 * */ import java.io.*; import java.util.*; public class Test3 { publi

CRM框架小知识以及增删查改逻辑代码

CRM:客户关系管理系统 总体框架 MVC4 + EF5 + Autofac 替代工厂层连接各个层之间的关系 基本框架 01实体层 02仓储层 03业务层 04公共层 05UI 用MVC框架 ------------------------------------------ 01实体层 EF 01实体层 中 为了方便模型注解 用T4模板分别生成 EF实体类的部分类 和 贴标签的类 EF实体类的部分类 using System.ComponentModel; using System.Compo

服务器主逻辑代码的重构

不知道前主程是处于什么目的,总之我接手这套程序的时候,出现了超级多的问题,也发现了超级多的问题. 比如说吧,接受网络消息逻辑是线程独立的,而发送消息给客户端缺阻塞在了逻辑线程里面:原本可以放在一个进程里面处理的逻辑,却分散在了四个进程里面去处理,导致我完成一个功能,大部分时间要话费了进程之间的玩家信息的同步上面,在我无法忍受的情况下,我终于是用NIO将网络底层从新写了,而且将四个进程合并,但是在很多逻辑上还是尽量保持了和原逻辑处理的兼容! 先说说这个重构的底层吧! 我们看下最重要的ClientH