javayestome 发表于 2013-2-1 11:03:58

数组实现大数相乘

还很粗糙,效率也不太高,有时间再封装到c++类。



//数组自乘测试
void multiply(int a[],int len,int n,int dd)
{
int LEN=len;
int N=n;
//初始化result
int yy=LEN-1,xx=MAX-1;
while(yy>=0)
{
aa=a;
}
for(int i=1;i<N;i++)
{
for(int i=0;i<MAX;i++)
   result=0;
int oo=0;

for(int k=LEN-1;k>=0;k--)
{
   //clear temp
   for(int ss=0;ss<MAX;ss++)
    temp=0;
   int carry=0;
   int bit=0;
   for(int j=MAX-1;j>=0;j--)
   {
    while(aa*a+carry>=10)
    {
   int temptemp=aa*a+carry;
   temp=(aa*a+carry)%10;
   bit++;
   j--;
   carry=temptemp/10;
    }
    temp=aa*a+carry;
    carry=0;
    bit++;
   }
   for(int dd=MAX-1;dd>=0;dd--)
   {
    int resultcarry=0;
    while(temp+result+resultcarry>=10)
    {
   result=(temp+result+resultcarry)%10;
   resultcarry=1;
   dd--;
    }
   result=temp+result+resultcarry;
   resultcarry=0;
   }
   oo++;
}
int xx=MAX-1;
while(xx>=0)
{
   aa=result;
   xx--;
}
}
print(dd);
}
页: [1]
查看完整版本: 数组实现大数相乘