• 九度OJ 1118 数制转换


    题目地址:http://ac.jobdu.com/problem.php?pid=1118

    题目描述:

        求任意两个不同进制非负整数的转换(2进制~16进制),所给整数在long所能表达的范围之内。
        不同进制的表示符号为(0,1,...,9,a,b,...,f)或者(0,1,...,9,A,B,...,F)。

    输入:

        输入只有一行,包含三个整数a,n,b。a表示其后的n 是a进制整数,b表示欲将a进制整数n转换成b进制整数。a,b是十进制整数,2 =< a,b <= 16。

        数据可能存在包含前导零的情况。

    输出:

        可能有多组测试数据,对于每组数据,输出包含一行,该行有一个整数为转换后的b进制数。输出时字母符号全部用大写表示,即(0,1,...,9,A,B,...,F)。

    样例输入:
    15 Aab3 7
    样例输出:
    210306
    提示:

    可以用字符串表示不同进制的整数。

    #include <stdio.h>
     
    int main(void){
        char str[100];
        long long data;
        long long tmp;
        int a, b;
        int i;
     
        while (scanf ("%d %s %d", &a, str, &b) != EOF){
            data = 0;
            for (i=0; str[i]; ++i){
                if (str[i] >= 'a')
                    str[i] -= 32;
                tmp = (str[i] <= '9' && str[i] >= '0') ? str[i] - '0' : str[i] - 'A' + 10;
                data = data * a + tmp;
            }
            if (data == 0){
                puts ("0");
                continue;
            }
            i = 0;
            while (data != 0){
                tmp = data % b;
                str[i] = (tmp >= 10) ? tmp - 10 + 'A' : tmp + '0';
                ++i;
                data /= b;
            }
            --i;
            while (i >= 0){
                putchar (str[i]);
                --i;
            }
            putchar ('
    ');
        }
     
        return 0;
    }
    
  • 相关阅读:
    HTML5标签的标准属性
    HTML页面莫名宽了一点
    HTTP通信基础HTTP协议数据结构分析
    JSONDecodeError: Expecting value: line 1 column 1 (char 0)
    linux 下安装redis报错解决
    单元测试unittest
    python嵌套循环练习
    python操作MySQL
    Open XML for Office developers
    在线处理页面内容
  • 原文地址:https://www.cnblogs.com/liushaobo/p/4373818.html
Copyright © 2020-2023  润新知