zoukankan      html  css  js  c++  java
  • 九度OJ 1026:又一版 A+B (进制转换)

    时间限制:1 秒

    内存限制:32 兆

    特殊判题:

    提交:11412

    解决:3086

    题目描述:

    输入两个不超过整型定义的非负10进制整数A和B(<=231-1),输出A+B的m (1 < m <10)进制数。

    输入:
    输入格式:测试输入包含若干测试用例。每个测试用例占一行,给出m和A,B的值。
    当m为0时输入结束。
    输出:
    输出格式:每个测试用例的输出占一行,输出A+B的m进制数。
    样例输入:
    8 1300 48
    2 1 7
    0
    样例输出:
    2504
    1000
    来源:
    2008年浙江大学计算机及软件工程研究生机试真题

    思路:

    典型进制转换题,m进制数可以用字符串或整型数组表示,注意进位和数的范围。

    进制转换的一种技巧是高位全部置零,这样不用单独判断最高位是多少。

    另外一定要注意特殊情况的处理,比如0+0


    代码:

    #include <stdio.h>
     
    int main(void)
    {
        int c[20];
        int m, b;
        unsigned int a;
        int i;
     
        while (scanf("%d", &m) != EOF)
        {
            if(m == 0) break;
            scanf("%d%d", &a, &b);
            a += b;
            i = 0;
     
            do
            {
                c[i++] = a % m;
                a /= m;
            }while (a != 0);
            while (i>0)
            {
                printf("%d", c[--i]);
            }
            printf("
    ");
        }
     
        return 0;
    }



    编程算法爱好者。
  • 相关阅读:
    3-1
    3-2
    习题二 8
    习题二 3
    习题二 5
    习题二 4
    习题二 6
    实验三-2未完成
    实验三
    心得
  • 原文地址:https://www.cnblogs.com/liangrx06/p/5084005.html
Copyright © 2011-2022 走看看