24h購物| | PChome| 登入
2009-07-24 19:13:18| 人氣1,010| 回應2 | 上一篇 | 下一篇

ACM 10878 10878 - Decode the tape

推薦 0 收藏 0 轉貼0 訂閱站台

作法:2進位的ASCII

看到只有 'o' ' ' '.'三個,而且每行都有'.',所以將第一行看成二進制,發現是一個ASCII的十進位.

| o   .  o|
 01000 001 →65 →'A'

|  o  .   |
 00100 000 →32 →' '

/*************************************************************/

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
main()
{
 char line[50]="___________",in[50];
 while(gets(in))
  {
   while(gets(in))
     {
       if(strcmp(in,line)==0) break;
       int a,m=1,sum=0;
       for(a=9;a>=1;a--)
        {
          if(a==6) continue;
          if(in[a]=='o') sum=sum+m;
          m=m*2;
         }
        printf("%c",sum);
     }
     printf("\n");
  }
 return 0;
}

 

台長: 來源不明
人氣(1,010) | 回應(2)| 推薦 (0)| 收藏 (0)| 轉寄
全站分類: 數位資訊(科技、網路、通訊、家電) | 個人分類: ACM |
此分類下一篇:ACM 446 Q446: Kibbles `n’ Bits `n’ Bits `n’ Bits
此分類上一篇:ACM 10515 Q10515: Power et al.

路人
最近寫ACM 446

請問有什麼方法可以快速輸入測資??

我用scanf( ”%x %c %x”, &num1, &operator, &num2 );

這題是要輸入16進位表式的數字

input :
A + 3
AAA + BBB

output :
0000000001010 + 0000000000011 = 13
0101010101010 + 0101110111011 = 5733

卡好久= = 一直TLE

可否幫我看一下?
2009-07-25 01:54:14
版主回應
Sample Input

2  ←這個輸入的呢?
A + 3
AAA + BBB
不過我想應該沒有錯誤 我在測試看看
2009-07-25 08:05:16
路人
以解決

結果是我的某個迴圈遞增條件沒寫好
--n我寫成-n少一個-
導致進入無窮迴圈= =

真不好意思= =
2009-07-25 10:19:35
是 (若未登入"個人新聞台帳號"則看不到回覆唷!)
* 請輸入識別碼:
請輸入圖片中算式的結果(可能為0) 
(有*為必填)
TOP
詳全文