PAT (Basic Level) Practice 1022

xiaoxiao2021-02-28  35

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; }
转载请注明原文地址: https://www.6miu.com/read-2619110.html

最新回复(0)