文档介绍:#include <stdio. h>
ttinclude <stdlib. h>
^include <string. h>
#define MAX 1000
^pragma warning(disable:4996)
int xa () int lenl, len2, i, j:
while (scanf("%s %s”, a, b))
(
lenl = strlen(a);
len2 = strlen(b);
for (j = 0, i = lenl - 1; i >= 0; i—)//将字符串中字符转化为数字,并倒序储存 xl[j++] = a[i] - 'O';
for (j = 0, i = len2 - 1: i >= 0; i一)
y2[j++] = b[i] -,O';
for (i = 0; i < lenl: i++)//将因数各个位上的数字与另一个各个位上的数字相乘
{
for (j = 0; j < len2; j++)
z3[i + j] = z3[i + j] + xl[i] * y2[j];//先乘起来,后面统一进行进位
}
for (i = 0; i < MAX * 2; i++)//进行进位 if (z3[i] >= 10) //若>=10
(
z3[i + 1] = z3[i + 1] + z3[i] / 10; 〃将十位上数字进位
z3[i] = z3[i] % 10; //将个位上的数字留下
}
}
for (i = MAX * 2; i > 0; i—) 〃删除 0 的前缀
(
if (z3[i] == 0)
continue;
else
break;
}
for (; i》=0; i-) 〃倒序输出
printf("%d”, z3[i]):
printf("\n");
}
}
int s[100], m[100];//被除数除数商余数
int digit;//大数的位数
void sub(int x[], int y[], int lenl, int len2)//大数减法 { int i;
for (i = 0; i < lenl: i++)
{
if (x[i] < y[i])
{
x[i] = x[i] + 10 - y[i];
x[i + 1]—;
}
else
x[i] = x[i] - y[i];
}
for (i = lenl - 1; i >= 0; i-)//判断减法结束之后,被除数的位数
(
if (x[i])
{
digit = i + 1;
break;
}
}
}
int judge (int x[], int y[], int lenl, int len2)
(
int i;
if (lenl < len2)
return -1;
if (lenl = len2)//若两个数位数相等
{
for (i = lenl - 1; i >= 0; i一)
(
if (x[i] = y[i])//对应位的数相等 continue;
if (x[i] > y[i])〃被除数大于除数,返回值为1
return 1;
if (x[i] < y[i])//被