相加
void revert(char *a,char *b)
{
int len_a=strlen(a);
int len_b=strlen(b);
for(int i=0;i<len_a/2;i++)
{
char temp=a[i];
a[i]=a[len_a-1-i];
a[len_a-1-i]=temp;
}
for(int i=0;i<len_b/2;i++)
{
char temp=b[i];
b[i]=b[len_b-1-i];
b[len_b-1-i]=temp;
}
}
void add(char *a,char *b,int *c)
{
int len_a=strlen(a);
int len_b=strlen(b);
if(len_a>len_b)
c=(int *)malloc(sizeof(int)*(len_a+1));
else
c=(int *)malloc(sizeof(int)*(len_b+1));
int i=0;
int j=0;
int k=0;
int carry=0;
while(i<len_a&&j<len_b)
{
int temp=a[i++]-'0'+b[j++]-'0'+carry;
c[k++]=temp%10;
carry=temp/10;
}
while(i<len_a)
{
int temp=a[i++]-'0'+carry;
c[k++]=temp%10;
carry=temp/10;
}
while(j<len_b)
{
int temp=b[j++]-'0'+carry;
c[k++]=temp%10;
carry=temp/10;
}
for(i=0;i<k;i++)
printf("%d",c[k-1-i]);
printf("\n");
}相减
void delete(char *a,char *b,int *c)
{
int len_a=strlen(a);
int len_b=strlen(b);
if(len_a>len_b)
c=(int *)malloc(sizeof(int)*(len_a+1));
else
c=(int *)malloc(sizeof(int)*(len_b+1));
int i=0;
int j=0;
int k=0;
int carry=0;
// while(i<len_a&&j<len_b)
// {
// int temp=a[i++]-'0'-(b[j++]-'0')-carry;
// if(temp>=0)
// {
// c[k++]=temp;
// carry=0;
// }
// else
// {
// carry=1;
// c[k++]=-temp;
// }
// }
while(i<len_a&&j<len_b)
{
if(a[i]<b[j])
{
c[k++]=a[i++]-b[j++]+10;
if(i==len_a&&j==len_b)
{
c[k-1]=c[k-1]-10;
}
else
{
a[i]--;
}
// printf("%d\n",a[i]-'0');
}
else
{
c[k++]=a[i++]-b[j++];
}
// printf("%d\n",c[k-1]);
}
printf("第一步\n");
for(i=0;i<k;i++)
printf("%d",c[k-1-i]);
printf("\n");
while(i<len_a)
{
c[k++]=a[i++]-'0';
}
while(j<len_b)
{
c[k++]=b[j++]-'0'+10;
b[j]--;
}
// while(i<len_a)
// {
// int temp=a[i++]-'0'-carry;
// if(temp>=0)
// {
// c[k++]=temp;
// carry=0;
// }
// else
// {
// carry=1;
// c[k++]=-temp;
// }
// }
// while(j<len_b)
// {
// int temp=b[j++]-'0'-carry;
// if(temp>=0)
// {
// c[k++]=temp;
// carry=0;
// }
// else
// {
// carry=1;
// c[k++]=-temp;
// }
// }
// if(carry==1)
// c[k-1]=c[k-1]*(-1);
for(i=0;i<k;i++)
printf("%d",c[k-1-i]);
printf("\n");
}
京公网安备 11010502036488号