zoukankan      html  css  js  c++  java
  • 百练 2798 2进制转化为16进制 解题报告

    链接:http://poj.grids.cn/practice/2798/

    题目:

    总时间限制:
    1000ms
    内存限制:
    65536kB
    描述
    输入一个2进制的数,要求输出该2进制数的16进制表示。
    在16进制的表示中,A-F表示10-15
    输入
    第1行是测试数据的组数n,后面跟着n行输入。每组测试数据占1行,包括一个以0和1组成的字符串,字符串长度至少是1,至多是10000
    输出
    n行,每行输出对应一个输入。
    样例输入
    2
    100000
    111
    
    样例输出
    20
    7
    

    代码:

     1 #include <iostream>
     2 #include <cstdlib>
     3 #include <cstdio>
     4 #include <cstring>
     5 using namespace std;
     6 const int MAX = 10000;
     7 //char index[] = "0123456789ABCDEF";
     8 //char index[] = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
     9 char mindex[] = "0123456789ABCDEF";
    10 int main()
    11 {
    12     //freopen("F:\\input.txt","r",stdin);
    13     
    14     int n;
    15     cin>>n;
    16     
    17     char chs[MAX + 1],res[(MAX+3) / 4 + 1];
    18     int length,head_len;
    19     int value;
    20     while(n--)
    21     {
    22         cin>>chs;
    23         length = strlen(chs);
    24             
    25         //head
    26         head_len = length % 4;
    27         if(head_len == 0) head_len = 4;
    28         value = 0;
    29         for(int i = 0; i < head_len; i++) value = value * 2 + (chs[i] - '0');
    30         res[0] = mindex[value];
    31         
    32         //others
    33         int start;
    34         int j = 1;
    35 
    36         for(int i = head_len; i < length; i += 4)
    37         {
    38             value = (chs[i]-'0') * 8 + (chs[i + 1] - '0') * 4 + (chs[i + 2] - '0') * 2 + (chs[i + 3] - '0');
    39             res[j++] = mindex[value];
    40         }
    41         
    42         res[j] = '\0';
    43         cout<<res<<endl;
    44     }
    45     
    46     return 0;
    47 }

    思路:

    1.数组使用index无法通过编译

    2.长度大,不能使用2--》10--》16的思路,2--》16刚好是倍数,简化了计算

  • 相关阅读:
    004_Linux命令之查找与检索
    Linux passwd文件释义
    等保2.0涉及的PostgreSQL
    等保2.0测评:VMware ESXI
    等保2.0测评:Redis 数据库配置
    等保2.0测评之Nginx 中间件
    netcat使用方法
    Zookeeper的功能以及工作原理
    Nginx三大功能
    jellyfin错误 播放错误 该客户端与媒体不兼容,服务器未发送兼容的媒体格式 的解决办法
  • 原文地址:https://www.cnblogs.com/mobileliker/p/3096393.html
Copyright © 2011-2022 走看看