#include <stdio.h>
#include <string.h>
#include <math.h>
void main()
{
char a[16], b[16];
int ta,tb,tn,i,j,stra,strb;
unsigned long long nua, nub,num,temp;
unsigned long long ret;
while (~scanf_s("%s%s", a, sizeof(a), b, sizeof(b)))
{
stra = strlen(a)-1, strb = strlen(b)-1;
nua=nub=ta=tb=tn= i = j = 0;
if (a[0] == '-')ta = 1,i++;
if (b[0] == '-')tb = 1,j++;
if (a[i] == '+')i++;
if (b[j] == '+')j++;
for (i; i<=stra; i++)
{
if (a[i] >= 'A')nua += (a[i] - 55) * pow(16, stra - i);
else nua += (a[i] - '0') * pow(16, stra - i);
}
for (j; j<=strb; j++)
{
if (b[j] >= 'A')nub += (b[j] - 55) * pow(16, strb - j);
else nub += (b[j] - '0')* pow(16, strb - j);
}
if (nua < nub)
{
temp = nua, nua = nub, nub = temp;
temp = ta, ta = tb, tb = temp;
}
if (ta && !tb)num = nua - nub, tn = 1;
else if (!ta && tb)num = nua - nub;
else if (ta && tb)num = nua + nub, tn = 1;
else num = nua + nub;
if (tn) printf("-%llX\n", num);
else printf("%llX\n", num);
}
}
杭电oj 2057 A + B Again C语言
最新推荐文章于 2024-08-29 16:37:54 发布