长整数的处理

来源:百度知道 编辑:UC知道 时间:2024/06/11 23:57:17
假定用一个整型数组表示一个长整数,数组的每个元素存储长整数的一位数字,则实际的长整数m表示为:
m=a[k]×10k-1+a[k-1]×10k-2+….+a[2]×10+a[1]
其中a[0]保存该长整数的位数。求:
(1) 长整数乘普通整数;
(2) 长整数除普通整数。

给你写了个乘法,除法是类似的,自己练习一下

void mul(int* a, int b)
{
int i = 0;
int c = 0;
for (i = 1; i <= a[0]; i++)
{
c += a[i] * b;
a[i] = c % 10;
c /= 10;
}
while (c != 0)
{
a[i] = c % 10;
c /= 10;
i++;
a[0]++;
}
}

void main()
{
int a[10] = {3, 1, 0, 2};
int b = 9;
mul(a, b);
for (int i = a[0]; i >= 1; i--)
{
printf("%d", a[i]);
}
printf("\n");
}