算法设计与分析:第一张 算法分析介绍 1.3逻辑推理之谁能预测分数

这篇博客探讨了如何通过逻辑推理和算法设计来解决一个预测学生竞赛名次的问题。博主转换非数值信息为数值,利用枚举法和条件判断检查每个人的说法正确性,最终得出唯一解。
摘要由CSDN通过智能技术生成
/*
预测分数:
三维老师对某次学生竞赛进行了预测,他们预测如下:
甲说:学生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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值