欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

算法笔记3.5A: 又一版 A+B

程序员文章站 2024-03-18 18:23:58
...

题目描述


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


输入


输入格式:测试输入包含若干测试用例。每个测试用例占一行,给出m和A,B的值。
当m为0时输入结束。


输出


输出格式:每个测试用例的输出占一行,输出A+B的m进制数。


样例输入


2 4 5
8 123 456
0


样例输出


1001
1103


代码

#include<cstdio>

int main(){
    int m;      //m进制数
    long long int sum, A, B;       //整数A、B,sum为两数和;
    while(scanf("%d", &m) , m != 0){
    	scanf("%lld%lld", &A, &B);
        sum = A + B;
        int ans[63], num = 0;
        do{
            ans[num++] = sum % m;
            sum /= m;
        }while(sum != 0);
        for(int i = num - 1; i >= 0; i--){
            printf("%d", ans[i]);
        }
        printf("\n"); 
    }
    return 0;
}

总结:解题即掌握十进制转换为其他进制。
错误点:题中AB虽然范围为int型整数,但要定义为longlong型,否则会报错。

相关标签: 进制转换 c++