/*
预测分数:
三维老师对某次学生竞赛进行了预测,他们预测如下:
甲说:学生A得第一名,学生B得第三名
乙说:学生C得第一名,学生D得第四名
丙说:学生D得第二名,学生A得第三名
竞赛结果表明,它们各说对了一般,说错了一半,并且无名次并列。试编程输入:a,b,c,d各自的名次
自己分析:
假设:X=i表明X学生的名次为i
那么甲的陈述可以表示为:A==1,B==3
乙 :C==1,D==4
丙 :D==2,A==3
因为每个人均说对一半,这可以表示为,仍然是用逻辑值添加的方法
用a,b,c,d表示4名同学,用存储的值表示他们的名次,则a + b + c + d = 1 + 2 + 3 + 4 = 10
枚举法
输入:
输出:
a:4 b:3 c:1 d:2
*/
/*
关键:
1 对于非数值化的题目,转化为数值化:1)用字母对应的值表示名次,得分等,2)采用逻辑与的加法操作解决:说话一半对,4个人中一个说谎等,3)采用枚举法
2 if( ((a == 1) + (b == 3) == 1) && ((c == 1) + (d == 4) == 1) && (((d == 2) + (a == 3) == 1 ) ) )//解析问题:每人说对一半
3 for(a = 1 ; a &l
算法设计与分析:第一张 算法分析介绍 1.3逻辑推理之谁能预测分数
最新推荐文章于 2023-10-14 23:16:13 发布
这篇博客探讨了如何通过逻辑推理和算法设计来解决一个预测学生竞赛名次的问题。博主转换非数值信息为数值,利用枚举法和条件判断检查每个人的说法正确性,最终得出唯一解。
摘要由CSDN通过智能技术生成