(枚举)称硬币

有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;
   }
   
  }
 }

解题思路:

对于每一枚硬币先假设它是轻的,看是否符合,若不符合就假设是重的。

把所有的硬币都试一遍,一定能找到特殊硬币

 

posted @ 2020-01-26 19:43  BlueValentines  阅读(227)  评论(0)    收藏  举报