zoukankan      html  css  js  c++  java
  • 基础练习 十六进制转八进制

    问题描述
      给定n个十六进制正整数,输出它们对应的八进制数。

    输入格式
      输入的第一行为一个正整数n (1<=n<=10)。
      接下来n行,每行一个由0~9、大写字母A~F组成的字符串,表示要转换的十六进制正整数,每个十六进制数长度不超过100000。

    输出格式
      输出n行,每行为输入对应的八进制正整数。

      【注意
      输入的十六进制数不会有前导0,比如012A。
      输出的八进制数也不能有前导0。

    样例输入
      2
      39
      123ABC

    样例输出
      71
      4435274
    AC代码:
    #include <iostream>
    #include<stdio.h>
    #include <algorithm>
    #include<string.h>
    #define ll long long
    using namespace std;
    int main()
    {
        char c;
        int t,x,r;
        char a[100005];
        int b[400005];
    
        scanf("%d",&t);
        while(t--)
        {
            string s="";            ///每次字符串更新
            scanf("%s",a);
            int len=strlen(a);      ///16进制的长度
            for(int i=0;i<len;i++)  ///变成二进制
            {
    
                if(a[i]>='0' && a[i]<='9')///获取当前位的十六进制值
                    x=a[i]-'0';
                else
                    x=a[i]-'A'+10;
    
                for(int j=3;j>=0;j--)
                {
                    r=x%2;
                    x=x>>1;
                    b[i*4+j]=r;
                }
            }
            len = len*4;
            r=len%3;
            for(int i=len-1;i>1;i=i-3)    ///二进制,三位二进制变一位八进制
            {
                x=b[i]+b[i-1]*2+b[i-2]*4;
                c=x+'0';
                s=(c)+s;
            }
            if(r==2)                       ///左边位数不够则不累加
            {
                x=b[1]+b[0]*2;
                c=x+'0';
                s=c+s;
            }
            else if(r==1)
            {
                x=b[0];
                c=x+'0';
                s=c+s;
            }
            if(s[0]=='0')       ///首位是0则
                s=s.substr(1);  ///截取当前下标到末尾
            cout<<s<<"
    ";
    
        }
        return 0;
    }
  • 相关阅读:
    HDU4857 逃生 拓扑排序
    HDU1285 确定名次 拓扑排序
    【noip模拟赛4】找啊找啊找BF 拓扑排序
    拓扑排序基础
    【noip模拟赛5】任务分配 降维dp
    【noip模拟赛6】收入计划 最大值的最小值 二分答案
    【noip模拟赛5】水流
    标记预期失败
    跳过:
    pytest配置文件:
  • 原文地址:https://www.cnblogs.com/shoulinniao/p/10187780.html
Copyright © 2011-2022 走看看