您的位置:首页 > 其它

百练2736 大整数减法

2011-08-09 10:13 239 查看
 1,和加法差不多,注意借位就成。

2,怎么消去前面的0?这个值得注意..其实很简答的。

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define size 200
int main()
{
int num1[size],num2[size],m;
char s1[size],s2[size];
int n,i,k=0,a=0,b=0,len1,len2,maxlen;

scanf("%d", &n);

while(n--)
{
scanf("%s%s", s1, s2);

memset(num1,0,sizeof(num1));

memset(num2,0,sizeof(num2));

len1 = strlen(s1);

len2 = strlen(s2);

if (len1 < len2)
{
break;
}
else
{
k = 0;

for (i=len1-1; i>=0; i--)
{
num1[k++] = s1[i] - '0';
}

k = 0;

for (i=len2-1; i>=0; i--)
{
num2[k++] = s2[i] - '0';
}

maxlen = len1 > len2 ? len1 : len2;

for (i=0; i<maxlen; i++)
{
num1[i] -= num2[i];

if (num1[i] < 0)                          //减法借位
{
num1[i] = 10 + num1[i];

num1[i+1] = num1[i+1] - 1;
}
}

m = maxlen;

while (!num1[m])                                 //m消掉0
{
m--;
}
for(i=m; i>=0; i--)
{
printf("%d",num1[i]);
}
m = 0;

if (n)
{
printf("\n");
}
}
}
system("pause");
return 0;
}


 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  system