📄 1205.cpp
字号:
#include <iostream>
#include <ctype.h>
#include <string>
const int MAXN = 110;
using namespace std;
void add(int *a, int *b, int &l1, int &l2)
{
int c[MAXN];
memset(c, 0, sizeof(c));
int l = l1 > l2 ? l1 : l2;
int i;
for ( i = 0; i != l; ++i)
{
c[i] += a[i] + b[i];
c[i + 1] += c[i] / 20;
c[i] %= 20;
}
for ( i = 0; i != MAXN; ++i)
a[i] = c[i];//copy c 到 a;
l1 = MAXN;
while (a[l1] == 0)
--l1; //找到a的长度;
}
int main()
{
int a[MAXN], b[MAXN], l1, l2;
string str1, str2;
int i;
memset(a, 0, sizeof(a));
memset(b, 0, sizeof(b));
l1 = 0; l2 = 0;
while (cin >> str1 >> str2)
{
l2 = str2.size();
memset(b, 0, sizeof(b));
l1=str1.size();
memset(a , 0 ,sizeof(a));
for ( i = 0; i != l1; ++i)
if(isalpha(str1[i]))
a[l1- i - 1] = str1[i] - 'a' + 10;
else
a[l1- i - 1] = str1[i] - '0';
for(i = 0 ; i != l2 ; ++i)
if(isalpha(str2[i]))
b[l2 - i -1] = str2[i] - 'a' + 10 ;
else
b[l2 - i -1] = str2[i] - '0';
add(a, b, l1, l2);
str2 = "";
for (int i = 0; i != l1; ++i)
if(a[i]>=10)
str2 = (char)(a[i] + 87 ) + str2 ;
else
str2 = (char)(a[i] + '0') + str2;
while (str2[0] == '0' && str2.size() != 1)
str2 = str2.substr(1);
cout << str2 << endl;
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -