4 1 .哪个大夫哪天值班 医院有A、B、C、D、E、F、G 七位大夫,在一星期内(星期一至星期天)每人要轮流值班一天
现在已知: A 大夫比 C 大夫晚一天值班; D 大夫比 E 大夫晚二天值班; B 大夫比 G 大夫早三天值班; F 大夫的值班日在 B 和 C 大夫的中间,且是星期四; 请确定每天究竟是哪位大夫值班
*问题分析与算法设计 由题目可推出如下已知条件: *F 是星期四值班; *B 值班的日期在星期一至星期三,且三天后是 G 值班; *C 值班的日期在星期五至星期六,且一天后是 A 值班; *E 两天后是 D 值班;E 值班的日期只能在星期一至星期三; 在编程时用数组元素的下标 1 到 7 表示星期一到星期天,用数组元素的值分别表示 A~F七位大夫
------------------------------------------------------- 4 2 .区分旅客国籍 在一个旅馆中住着六个不同国籍的人,他们分别来自美国、德国、英国、法国、俄罗斯和意大利
他们的名字叫 A、B、C、D、E 和 F
名字的顺序与上面的国籍不一定是相互对应的
现在已知: 1)A 和美国人是医生
2)E 和俄罗斯人是技师
3)C 和德国人是教师
4)B 和 F 曾经当过兵,而德国人从未参过军
5)法国人比 A 年龄大;意大利人比 C 年龄大
6)B 同美国人下周要去西安旅行,而 C 同法国人下周要去杭州度假
试问由上述已知条件,A、B、C、D、E 和 F 各是哪国人
*问题分析与算法设计 首先进行题目分析,尽可能利用已知条件,确定谁不是哪国人
由:1) 2) 3)可知:A 不是美国人,E 不是俄罗斯人,C 不是德国人
另外因为 A 与德国人的职业不同,E 与美、德人的职业不同,C 与美、俄人的职业不同,故 A 不是俄罗斯人或德国人,E 不是美国人或德国