展开
进制题目,而且还是个计算器~~
话说有一天,小Z乘坐宇宙飞船,飞到一个美丽的星球。因为历史的原因,科技在这个美丽的星球上并不很发达,星球上人们普遍采用B(2<=B<=36)进制计数。星球上的人们用美味的食物招待了小Z,作为回报,小Z希望送一个能够完成B进制加法的计算器给他们。 现在小Z希望你可以帮助他,编写实现B进制加法的程序。
共3行第1行:一个十进制的整数,表示进制B。第2-3行:每行一个B进制数正整数。数字的每一位属于{0,1,2,3,4,5,6,7,8,9,A,B……},每个数字长度<=2000位。
一个B进制数,表示输入的两个数的和。
输入 #1复制
4 123 321
输出 #1复制
1110
进制计算器
#include<iostream>
#include<algorithm>
using namespace std;
string x, y;
int a[100005], b[100005], c[100005], la, lb, lc, n;
int main()
{cin >> n >> x >> y;la = x.length();lb = y.length();for (int i = 0; i < la; i++){if (x[i] >= 'A' && x[i] <= 'Z'){a[la - i] = x[i] - 'A' + 10;}elsea[la - i] = x[i] - '0';}for (int i = 0; i < lb; i++){if (y[i] >= 'A' && y[i] <= 'Z'){b[lb - i] = y[i] - 'A' + 10;}elseb[lb - i] = y[i] - '0';}lc = max(la, lb);for (int i = 1; i <= lc; i++)//i=0存的是'