(枚举)称硬币
有12枚硬币。其中有11枚真币和1枚假币。假币和真
币重量不同,但不知道假币比真币轻还是重。现在,
用一架天平称了这些币三次,告诉你称的结果,请你.
找出假币并且确定假币是轻是重(数据保证一定能找
出来)。
输入样例
1(1组测试数据,每组测试数据有三行)
ABCD EFGH even(even平,up右边高,down右边低)
ABCI EFJK up
ABIJ EFGH even
输出样例
K is the counterfeit coin and it is light.
题解:
//(错误)将even排除的写法只适用于部分样例
char alphabet[12]={0};
char left[4],char right[4],char result[4]={0};
int n,i,count;
scanf("%d",&n);
for(i=0;i<3*n;i++){
scanf("%s",left);
scanf("%s",right);
scanf("%s",result);
if(result[0]=='e'){
for(count=0;count<4;count++){
aphabet[letf[i]-65]=1;
aphabet[right[i]-65]=1;
}
}
}
解题思路:
对于每一枚硬币先假设它是轻的,看是否符合,若不符合就假设是重的。
把所有的硬币都试一遍,一定能找到特殊硬币