问题描述
有a,b,c3个老师各交2门课,互不重复。共有6门课语文算术政治地理音乐美术已知:1政治老师和算术老师是邻居。2地理老师比语文老师年龄大。3B最年青4A经常对地理老师和算术老师讲他看过的文学作品。5B经常和音乐老师和语文老师一起游泳。输出A,B,C老师各交的哪两门课。!~能不能用编程实现(可读性要好)
解决方案
解决方案二:
用完全面向对象编程解决(源码和解释都有)实现主要逻辑为SubjectChinese=newSubject("语文");SubjectMath1=newSubject("算术");SubjectPolitics=newSubject("政治");SubjectGeography=newSubject("地理");SubjectMusic=newSubject("音乐");SubjectArt=newSubject("美术");//1政治老师和算术老师是邻居。Politics.SetEnemy(refMath1);//2地理老师比语文老师年龄大。Geography.SetEnemy(refChinese);//3B最年青Geography.SetEnemy("B");//4A经常对地理老师和算术老师讲他看过的文学作品。Geography.SetEnemy(refMath1);Geography.SetEnemy("A");Math1.SetEnemy("A");//5B经常和音乐老师和语文老师一起游泳。Music.SetEnemy(refChinese);Music.SetEnemy("B");Chinese.SetEnemy("B");
解决方案三:
哪天程序也能猜谜语就好了……
解决方案四:
//SetEnemy表示不互斥不能共存,可能是科目也可以是教师
解决方案五:
A:语文.政治.B:算术.美术.C:地理.音乐.好像写编程比较麻烦,判断条件太多?
解决方案六:
判断条件太多了?难道你是用猜的?
解决方案七:
b美术政治a语文音乐c算术地理
解决方案八:
如果b是美术和政治老师是答案是唯一的
解决方案九:
答案是唯一的4楼是对的A:语文政治B:算术美术C:地理音乐
解决方案十:
1政治老师和算术老师是邻居。//政治老师跟算术老师不是同一个人2地理老师比语文老师年龄大。//地理老师跟语文老师不是同一个人,B不是地理老师3B最年青//小B最小4A经常对地理老师和算术老师讲他看过的文学作品。//只说明A不教地理跟算术,但只能理解为地理跟算术不是同一个人5B经常和音乐老师和语文老师一起游泳。//只说明B不教音乐跟语文,也只能理解为音乐和语文不是同一个人结果:很容易得到C:地理,音乐;但A,B只能靠那个不算条件的条件:A:语文,政治;B:算术,美术!
解决方案十一:
结果很容易得到,接楼上了,做了简单分析,现在大家可以看懂了:1政治老师和算术老师是邻居。//政治老师跟算术老师不是同一个人2地理老师比语文老师年龄大。//地理老师跟语文老师不是同一个人,B不是地理老师3B最年青4A经常对地理老师和算术老师讲他看过的文学作品。//只说明A不教地理跟算术,但只能理解为地理跟算术不是同一个人5B经常和音乐老师和语文老师一起游泳。//只说明B不教音乐跟语文,也只能理解为音乐和语文不是同一个人开始推理首先可以得出C是教地理的因为A不教地理跟算术,B也不教地理得出C:地理地理老师跟语文老师不是同一个人,得出C不教语文,但是B也不教语文,所以得出A:语文地理跟算术不同是一个人,说明C不教算术,但A不教算术得出B:算术目前还剩下:政治,美术,音乐政治跟算术不是同一个人说明B不教政治,B也不教音乐得出B:美术还剩下政治,音乐音乐和语文不是同一个人,说明A:政治则C:音乐
解决方案十二:
写程序有点麻烦4楼正解
解决方案十三:
一楼的程序不错,能不能说明一下思路?