zoukankan      html  css  js  c++  java
  • HDU2031 进制转换【进制】

    问题链接HDU2031 进制转换。这是一个入门训练题,自然用C语言编写程序。

    问题简述:参见上述链接。

    问题分析(略)。

    程序说明需要注意的一点是,将一个10进制数转换为2进制的话,字符串可能很长,字符数组需要大一点的空间,80=20*4字符是够的,因为整数最长只有10进制19位。

    本题还需要注意负数的处理!

    参考链接:人们常用的是10进制,有关10进制转换,可以参见:I00028 整数逆序


    AC的C语言程序如下:

    /* HDU2031 进制转换 */
    
    #include <stdio.h>
    #include <string.h>
    
    void reverse(char s[])
    {
        int i,j;
        int c;
    
        for(i=(s[0]=='-'?1:0),j=strlen(s)-1; i<j;i++,j--)
        {
            c = s[i];
            s[i] = s[j];
            s[j] = c;
        }
    }
    
    void convert(int n, int r, char *s)
    {
        char *t;
    
        t = s;
    
        // 处理负数
        if(n<0) {
            *t++ = '-';
            n = -n;
        }
    
        while(n) {
            *t = n % r;
            if(*t >= 10)
                *t = *t - 10 + 'A';
            else
                *t = *t + '0';
            n /= r;
            t++;
        }
        *t = '';
    
        reverse(s);
    }
    
    int main(void)
    {
        int n, r;
        char t[80];
    
        while(scanf("%d%d", &n, &r) != EOF) {
            convert(n, r, t);
            printf("%s
    ", t);
        }
    
        return 0;
    }

     

  • 相关阅读:
    EL表达式_1
    Servlet2
    Servlet1
    安装Tomcat
    Java日期时间3
    SpringCloud之Ribbon负载均衡
    SpringCloud之Eureka注册中心
    存储过程—增减字段
    880. Decoded String at Index
    977. Squares of a Sorted Array
  • 原文地址:https://www.cnblogs.com/tigerisland/p/7564708.html
Copyright © 2011-2022 走看看