Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 2

#include <iostream>

#include<stdio.h>
using namespace std;

typedef long long num;

const int maxLen = 10;


char n1[maxLen+1];
char n2[maxLen+1];

char a1[maxLen+2];
char a2[maxLen+2];
char ar[maxLen+2];

//golu
//pihu

void add(char *t1, char *t2)


{
int l1 = 0, l2 = 0;
while(t1[l1]!='\0')
{
l1++;
}
for(int i=l1-1,j=0;i>=0;i--,j++)
{
a1[j] = t1[i];
a1[j] = a1[j] <= '9' ? a1[j] - '0' : a1[j] - 'A';
}

while(t2[l2]!='\0')
{
l2++;
}
for(int i=l2-1,j=0;i>=0;i--,j++)
{
a2[j] = t2[i];
a2[j] = a2[j] <= '9' ? a2[j] -'0':a2[j] -'A';
}

int carry = 0;
for(int i=0;i<l1;l++)
{
ar[i] = a1[i] + a2[i] + carry;
if(ar[i] >= 32)
{
carry = 1;
ar[i] -=32;
}
else
{
carry = 0;
}
ar[i] = ar[i] <= 9?ar[i] + '0' : ar[i]+'A'-10;
}

if(carry)
{
ar[l1] = '1';
ar[l1+1]='\0';
}
else
{
ar[l1]='\0';
}

printf("sum is %s \n",ar);
}

void printBase32(num a)
{
int t;
while(a)
{
t = a & 0x1f;
printf("%c", t<10 ? '0'+t : 'A'+t-10);
a = a >> 5;
}
}

void gen()
{
n1[0] = rand()%32+1;
n2[0] = rand()%32+1;
n1[0] = n1[0] < 10 ? '0' + n1[0] : 'A'+n1[0] -10;
n2[0] = n2[0] < 10 ? '0' + n2[0] : 'A' + n2[0] -10;
for(int i = 1; i< maxLen;i++)
{
n1[i] = rand()%32;
n2[i] = rand()%32;
n1[i] = n1[i] < 10 ? '0'+n1[i] : n1[i] +'A'-10;
n2[i] = n2[i] < 10 ? '0'+n2[i] : n2[i] +'A' - 10;
}
n1[maxLen] = n2[maxLen] = '\0';

printf("number 1 = %s\n",n1);
printf("number 2 = %s\n",n2);
}

int main() {
// your code goes here
gen();
add(n1,n2);
return 0;
}

You might also like