题目来源:Codeup新家
题目描述
输入两个不超过整型定义的非负10进制整数A和B(<=231-1),输出A+B的m (1 < m <10)进制数。
样例输入 Copy
2 4 5 8 123 456 0
样例输出 Copy
1001 1103
提示
注意输入的两个数相加后的结果可能会超过int和long的范围。
解题1、利用除基取余法 注意:需要将数组从高位向低位输出
2、用数组保存转化后数的每一位
3、用do...while语句的原因是:当sum=0时,需要向0号数组元素中存0,而不是直接跳出
4、注意while (scanf("%d",&n),n)的写法
#include<stdio.h>
using namespace std;
int main(){
long long a,b;
long long sum;
int n;
int num[32];
int i;
while (scanf("%d",&n),n) {
i=0;
scanf ("%lld %lld",&a,&b);
sum=a+b;
do{
num[i++]=sum%n;
sum/=n;
}while(sum!=0);
for (int j=i-1;j>=0;j--) {
printf("%d",num[j]);
}
printf("\n");
}
}