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
     
     
    【思路】 每3位16进制对应4位8进制  所以 每3位16进制将它化为十进制在把这个数按八进制的格式输出
     
    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<algorithm>
    using namespace std;
    char s[1000002];
    int d[100];
    int get(char x)
    {
        if(x>='0'&&x<='9')
            return x-'0';
        else if(x>='a'&&x<='f')
            return x-'a'+10;
        else if(x>='A'&&x<='F')
            return x-'A'+10;
    }
    int main()
    {
        int t;
        scanf("%d",&t);
    
        while(t--)
        {
            scanf("%s",s);  getchar();
            int len;
            len=strlen(s);
            int p;
            p=len%3;
            int sum=0;
            int f=1;
            for(int i=p-1; i>=0; i--)
            {
                sum+=get(s[i])*f;
                f*=16;
            }
            int flag=0;
            if(sum)
            {
                printf("%o",sum);
                flag=1;
            }
            for(int i=p; i<len; i+=3)
            {
                sum=0;
                f=1;
                for(int k=2; k>=0; k--)
                {
                    sum+=get(s[i+k])*f;
                    f*=16;
                }
                if(sum)
                {
                    printf("%04o",sum);                //!!!这里注意了
                    flag=1;
                }
                else if(flag)
                    printf("0000");
    
            }
            printf("
    ");
        }
        return 0;
    }
     
  • 相关阅读:
    存储过程参数不能使用函数
    .gitignore git已跟踪文件不生效
    Css选择器-层次选择器(关系选择器)
    Mysql自定义变量的作用
    jQuery 鼠标滑过Div变色
    DataTable导出excel 设置单元格格式
    layui table 详细讲解
    npm 常用命令详解
    SQL Server 2008下轻松调试T-SQL语句和存储过程
    帆软报表常用功能
  • 原文地址:https://www.cnblogs.com/assult/p/3613459.html
Copyright © 2011-2022 走看看