1.题目描述
方法:穷举法
2.算法思想
1.先穷举,每个运动员都可以为1-5的名次,5个for()循环
2.然后加限定条件
a.题目中说每个选手说对一半,只需要(条件一)+(条件二)==1,则满足说对一半的要求
b.五个运动员之间需要用逻辑与约束
c.但是还有另一个约束
3.题目中没有约束名次不可以并列,那就要考虑到不能有跳名次的情况(即不能出现三个并列第一,一个第三名,一个第四名;或是五个并列第四)
a.设一个无符号的char类型的变量,名为flag
b.分别按位或取得五个运动员名次的情况(如果是五个运动员没有并列名次,就会是00011111)
c.现在就需要判断1是不是连续的
1)即判断第一位到第五位之间有没有1中间夹着0
2)如果有,不符合要求,不输出
3)没有即符合条件,输出结果
3.代码
#include <stdio.h>