2012年1月11日 星期三

acm 10878: Decode the tape

[心得] 0.008

1. ,每行都是一個ASCII 碼,每行只要注意 'o'出現的位置,轉換成相對應的ASCII碼

#include <stdio.h>
#include <string.h>
#include <math.h>

int main()
{

   int length,i,sum,counter=0;
   char s[20];
   char output[100000];
  
       gets(s);
       
       while(gets(s)!=NULL)
       {  
          if(strcmp(s,"___________")==0)
            break;
         sum=0;
       /*  for(i=0;i<=11;i++)
         printf("s[%d]=%c\n",i,s[i]);*/
      
          for(i=0;i<=11;i++)
          {  
              if(s[i]=='o')
              {
                  if((9-i)==0)
                    sum =sum+1;
                  else if((9-i)==1)
                    sum =sum+2;
                  else if((9-i)==2) 
                    sum =sum+4;
                  else 
                    sum = sum+pow(2,(8-i));
                     
              } 
          
          }
             /*printf("%c\n",sum); */
             output[counter]=sum;
             counter++;
                         
       } 
      
        for(i=0;i<counter;i++)
           printf("%c",output[i]); 
        /*counter=0; 
        printf("\n");*/

   system("pause");
   return(0);   
}

沒有留言:

張貼留言