zoukankan      html  css  js  c++  java
  • HDU1877 又一版 A+B

    问题链接HDU1877 又一版 A+B入门练习题,用C语言编写程序。

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

    问题分析一个典型的进制转换题,输入两个10进制整数,将其和转换成指定的进制。

    程序说明需要注意一点,要正确处理和为0的情况。

    AC的C语言程序如下:

    /* HDU1877 又一版 A+B */
    
    #include <stdio.h>
    
    void reverse(char s[], int len)
    {
        int i,j;
        int c;
    
        for(i=(s[0]=='-'?1:0),j=len-1; i<j;i++,j--)
        {
            c = s[i];
            s[i] = s[j];
            s[j] = c;
        }
    }
    
    void convert(int n, int base, char *t)
    {
        char *p = t;
    
        // 处理值为0的情况
        if(n == 0)
            *p++ = '0';
    
        while(n) {
            *p = n % base;
            if(*p >= 10)
                *p = *p - 10 + 'A';
            else
                *p = *p + '0';
            n /= base;
            p++;
        }
        *p = '';
    
        reverse(t, p-t);
    }
    
    int main(void)
    {
        int m, a, b;
        char t[64];
    
        while(scanf("%d", &m) != EOF) {
            // 判定结束条件
            if(m == 0)
                break;
    
            // 读入A和B
            scanf("%d%d", &a, &b);
    
            // 进制转换
            convert(a+b, m, t);
    
            // 输出结果
            printf("%s
    ", t);
        }
    
        return 0;
    }


  • 相关阅读:
    暴躁游戏

    时间记录表格
    好好生活
    JAVA环境的配置
    Java简介
    markdown学习

    Arduino
    Arduino
  • 原文地址:https://www.cnblogs.com/tigerisland/p/7564558.html
Copyright © 2011-2022 走看看