大整数除法算法

玛丽莲梦兔
991次浏览
2021年01月11日 10:10
最佳经验
本文由作者推荐

电脑的用途-鼠害

2021年1月11日发(作者:茹富兰)


大整数除法运算,将试除法进行到底,速度绝对有保证
int CPublic::LarNumDivision(int a[],int b[],int c[],int e[],int m,int n,int *p) a是被除
数,b是除数,c余数,e商
{
m是a的位数,n是b的位数,返回c的位数,*p记录e的位数
int i,i1,j,j1,l,k,k1=0;
int n1;
int d[MAX]={0},f[MAX]={0};
l=CPublic::LarNumCompare(a,b,m,n);
if(l<0)
{
e[0]=0;
*p=1;
for(i=0;i c[i]=a[i];
return m;
}
else if(l==0)
{
e[0]=1;
*p=1;
c[0]=0;
return 1;
}
else
{
for(i=0;i d[i]=a[i];
i--;
i1=i;
n1=n;
l=CPublic::LarNumCompare(d,b,n1,n);
if(l<0)
{
i++;
if(i {
d[i]=a[i];
n1=i+1;
}
while(i {
while(CPublic::LarNumCompare(d,b,n1,n)>=0)
{


























































































k=CPublic::LarNumMinus(d,b,c,n1,n);
f[k1]++;
for(j=0;j d[j]=0;
for(j=0;j d[j]=c[j];
n1=k;
}
if(CPublic::LarNumCompare(d,b,n1,n)<0)
{
for(j1=0;j1 c[j1]=d[j1];
}
if(d[0]==0)
i1=n1-1;
if(d[0]!=0)
i1=n1;
i++;
if(i {
d[i1]=a[i];
n1=i1+1;
}
k1++;
}
for(i=0;i e[i]=f[i];
*p=k1;
return k;
}
if(l>=0)
{
while(i {
while(CPublic::LarNumCompare(d,b,n1,n)>=0)
{
k=CPublic::LarNumMinus(d,b,c,n1,n);
f[k1]++;
for(j=0;j d[j]=0;
for(j=0;j d[j]=c[j];
n1=k;
}


if(CPublic::LarNumCompare(d,b,n1,n)<0)
{
for(j1=0;j1 c[j1]=d[j1];
}
if(d[0]==0)
i1=n1-1;
if(d[0]!=0)
i1=n1;
i++;
if(i {
d[i1]=a[i];
n1=i1+1;
}
k1++;
}
for(i=0;i不用反方向赋值
e[i]=f[i];
*p=k1;
return k;
}
}
return 1;
}

0x00000077-关于父亲的文章


圣诞快乐再疯狂-驾驶员安全教育


排骨藕汤的做法-实习期个人工作总结


爱的号码牌-始业教育


我的奋斗-late的反义词


峨眉山简介-端午作文


怎样备好一节课-陈伯达传


刘长卿的逢雪宿芙蓉山主人-让她开心