zoukankan      html  css  js  c++  java
  • zoj 3713 In 7-bit

    刚开始没注意它规定的范围,就是用了位运算。感觉挺好。已提交超时了!回头看它的数组非常大,一个循环内部稍微多几步操作就会超时

    #include<stdio.h>
    #include<string.h>
    char str[3000006];
    int main(int argc, char* argv[])
    {
        int t,i;
        int len;
        
        int pre,later;
        while(scanf("%d",&t)!=EOF)
        {
            getchar();
            while(t--)
            {
                
                gets(str);
                len=strlen(str);
                do
                {
                    pre=len>>7;
                    later=len&127;
                    if(pre>0)
                    later=later|128;
                    printf("%02X",later);
                    len=len>>7;
                    
                }while(pre!=0);/*如果前面还有1就在循环一直到长度的所有值输出完毕 */
                for(i=0;i<strlen(str);i++)
                printf("%02X",str[i]);
                
                printf("
    ");
            }
        }
        return 0;
    }

    后来看网上的,确实比我的省时多了

    #include<stdio.h>
    #include<string.h>
    #include<stdlib.h>
    #include<time.h>
    #include<math.h>
    char str[3000005];/*最高位是22位*/ 
    int bi[100];
    int main()
    {
       int t,k,b,d,c,i; 
       scanf("%d",&t);
       getchar();
       while(t--)
       {
          gets(str);
          k = strlen(str);
          b = 2097152,c = 16384 , d= 128;/*高位第22,15,8位*/
          if(k >= b)/*最高位21位上是为1*/ 
          {
            printf("%02X",k%d+d);/*取余加上第8位的1*/ 
            printf("%02X",k%c/d+d);
            printf("%02X",k%b/c+d);
            printf("%02X",k/b); 
          }
          else if(k >= c)/*第二个个高位14位上是为1*/ 
          {
             printf("%02X",k%d+d);
             printf("%02X",k%c/d+d);
             printf("%02X",k/c);
          }
          else if(k >= d)/*第7为上位1*/ 
          {
            printf("%02X",k%d+d);
             printf("%02X",k/d);
          }
          else 
          printf("%02X",k);
          
          for(i = 0 ;i < k ;i ++)  
          printf("%02X",str[i]);
           printf("
    ");
          
       
       }
    return 0 ;
    }
  • 相关阅读:
    一个省一等奖没文件没证书,只能保存一张图呢
    HTML5的新结构标签
    一个最简单的网页是如何构成的
    数据模型层Model
    空控制器空操作
    TP框架
    thinkphp基础
    静态缓存
    smarty函数
    Smarty的使用
  • 原文地址:https://www.cnblogs.com/woshijishu3/p/3592691.html
Copyright © 2011-2022 走看看