UVA - 10878 Decode the tape

題目大意:破解圖案對應的信息。

解題思路:空格對應 0 , “ o ”對應 1 ,每行就對應一個二進制數,這個數在十進制下就是所求字符的ASCII值。

題外話:看了網絡的解題思路似乎可以把 res 設爲二進制數直接加,這樣不用多一步轉成十進制了。

#include<string.h>
#include<stdio.h>
#include<math.h>
int main() {
  char inpu[11] , firsinp[11] ;
  int i , j , res;
    gets(firsinp);
      while( gets(inpu) && inpu[0] != '_' ) {
         res = 0;
         for( i=2 ; i < 11 ; i++ ) {
           if( i < 6) {
              if( inpu[i] == 'o') res += (int)(pow(2,8 - i));
            }
           else {
             if( inpu[i] == 'o' ) res += (int)(pow(2,9 - i));
           }
         }
        printf("%c",(char)(res));
      }
  return 0;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章