AC代码
#include <iostream>
#include<cstdio>
#include<algorithm>
#include<math.h>
#include<stdlib.h>
using namespace std;
int main()
{
long long int a,b;
int m;
while(cin>>m) {
if(m==0) break;
else{
cin>>a>>b;
}
long long int tmp,sum;
tmp=a+b;
sum=tmp;
int i;
if(tmp==0) {
cout<<0<<endl;
} else {
long long int p=1;
for(i=0;tmp>0;i++) {
tmp=tmp/m;
p=p*m;
// cout<<"i="<<i<<"时,p="<<p<<endl;
}
p=p/m;
int x;
for(;i>0;i--) {
x=sum/p;
cout<<x;
sum=sum-x*p;
p=p/m;
}
cout<<endl;
}
}
}
测试数据
要注意的点有两个:
- 题目提示中提到的“输入的两个数相加后的结果可能会超过int和long的范围”
- A+B结果为0的边缘要单独处理