实用代码如下:

void multiply(int a[],int b) //大数乘法(万进制)
{
    int array=0;
    for(int i=99;i>=0;i--)   //在这里面a[99]相当于个位     {
//      b 从99到0 依次 * a[i]
        array += b*a[i];
        a[i] = array%10000;
        array /= 10000;
    }
}

void divide(int a[],int b) //大数除法(万进制)
{
    int div=0;
    for(int i=0;i<100;i++)
    {
        div =div * 10000 + a[i];
        a[i] = div/b;
        div%=b;
    }
}

以下面的例子为准:
107924372*15=1618865580。
 ①上面的乘法如果运用10进制,很简单。直接按照我们原先学的算就可以了。

 ②万进制呢?

       首先存数:a[0]=4372,a[1]=792,a[2]=1。107924372,从低位到
       高位每四位存到一个数组元素中。此时,总位数为3。

       接着运算:a[0]*15=65580,所以进位为a[0]/10000=6
       ,a[0]=a[0]%10000=5580。a[1]*15=11880,a[1]=a[1]+6=11886。

       进位为1,a[1]=1886。a[2]*15=15,a[2]=a[2]+1=16,进位为0。

       输出:a[2],a[1],a[0]即为1618865580。要注意的是:如果a[2]=886,
       那么该如何输出?直接输出:168865580。显然不对,

      正确的是16088655880。输出的原则是:最高位原样输出,其它位如果小
      于1000,则高位补0,一位一补。