1022. D进制的A+B (20)
时间限制
100 ms
内存限制
65536 kB
代码长度限制
8000 B
判题程序
Standard
作者
CHEN, Yue
输入两个非负10进制整数A和B(<=230-1),输出A+B的D (1 < D <= 10)进制数。
输入格式:
输入在一行中依次给出3个整数A、B和D。
输出格式:
输出A+B的D进制数。
输入样例:123 456 8输出样例:
1103
分析:进制转换的原理很简单。不过这里有一点需要注意:process中的循环语句应该是do while而非while,因为如果用while语句,当输入为0时是不会得到输出结果的。因此用do while语句。
代码:
#include<iostream>
#include<algorithm>
using namespace std;
int stack[1000] = {0};
void process(long long n, int d)
{
int index = 0;
do{
stack[index++] = n % d;
n /= d;
}while(n != 0);
for(int i = index - 1; i >= 0; i--){
cout << stack[i];
}
cout << endl;
}
int main()
{
long long a, b;
int d;
cin >> a >> b >> d;
process(a + b, d);
return 0;
}