Bootstrap

【牛客网】浙江大学 又一版 A+B 解题报告

题目描述

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

输入描述:

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

输出描述:

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

示例1

输入

复制

8 1300 48
2 1 7
0

输出

复制

2504
1000

题解

除基取余法。

#include <cstdio>
#include <string.h>
int main()
{
    long long A, B;
    int m;
	while(scanf("%d", &m) != EOF){
		if(m == 0){
			break;
		}
		else{
			scanf("%lld%lld", &A, &B);
		}
		long long sum;
		sum = A + B;
		int ans[31], num = 0;//ans存放m进制的每一位
		do{//进制转换
			ans[num++] = sum % m;
			sum = sum / m;
		}while(sum != 0);
		int i;
		for(i = num - 1; i >= 0; i--){
			printf("%d", ans[i]);
		}
		printf("\n");
	}
    return 0;
}

 

;