输入两个不超过整型定义的非负10进制整数A和B(<=231-1),输出A+B的m (1 < m <10)进制数。
Input
输入格式:测试输入包含若干测试用例。每个测试用例占一行,给出m和A,B的值。
当m为0时输入结束。
Output
输出格式:每个测试用例的输出占一行,输出A+B的m进制数。
Sample Input
8 1300 48 2 1 7 0
Sample Output
2504 1000
#include<iostream>
using namespace std;
int main (){
int a;
long long m,n;
while(cin>>a>>m>>n){
long long sum=m+n;
int c[10005];
int i=0;
if (sum==0) {
cout<<"0"<<endl;
continue;
}
for (;;i++){
if (!sum) break;
c[i]=sum%a;
sum/=a;
}
for (int j=i-1;j>=0;j--){
cout<<c[j];
}
cout<<endl;
}
return 0;
}
#include <iostream>
#include <fstream>
#include <stack>
using namespace std;
char * change(long long num, int Into,char *str)
{
stack<char> s;
int index = 0;
if (0 == num)
str[index++] = '0';
while (num)
{
s.push(num % Into + '0');
num /= Into;
}
for (; !s.empty(); ++index)
{
str[index] = s.top();
s.pop();
}
str[index] = '\0';
return str;
}
int main()
{
#ifdef _DEBUG
ifstream cin("data.txt");
#endif // _DEBUG
int c;
long long a, b, sum;
char result[2048];
while (cin >> a >> b >> c)
{
sum = b + c;
cout << change(sum, a,result) << endl;
}
#ifdef _DEBUG
cin.close();
system("pause");
#endif // _DEBUG
return 0;
}