Professional Documents
Culture Documents
Base 3 2
Base 3 2
#include<stdio.h>
char a1[maxLen+2];
char a2[maxLen+2];
char ar[maxLen+2];
//golu
//pihu
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;
}