输入两个非负 10 进制整数 A 和 B (≤230−1),输出 A+B 的 D (1<D≤10)进制数。
输入格式:
输入在一行中依次给出 3 个整数 A、B 和 D。
输出格式:
输出 A+B 的 D 进制数。
输入样例:
123 456 8
输出样例:
1103
#include <iostream>
using namespace std;
int main()
{
int a, b, n;
cin >> a >> b >> n;
int c = a + b;
if (n == 8)
cout << oct << c;
else if (n == 10)
cout << c;//对这部分,笔者认为可能会让程序运行得快一点;
else
{
int y = -1;
int x[1000] = { 0 };
if (c < n)//重点:c<n时按原样输出;
cout << c;
else
{
while (c != 0)
{
y++;
x[y] = c % n;
c /= n;
}
for (int i = y; i >= 0; i--)
cout << x[i];
}
}
return 0;
}
关于C++进制转换的问题,更多详情请见
https://blog.csdn.net/bc202205/article/details/128450047?spm=1001.2014.3001.5501