问题标题: 酷町堂:1796 高精度除法

0
1

0
已采纳
张睿杰
张睿杰
初级天翼
初级天翼
定义数组a[1001],b[1001],c[1001],d,i;
void init(int a[])
{
    string s;
    输入s
    a[0]=s.length();
    for(i=1;i<=a[0];i++)
        a[i]=s[a[0]-i]-'0';
}
void print(int a[])
{
    定义i
    判断(a[0]==0)
    {
        输出0
        return ;
    }
    for(i=a[0];i>0;i--) cout<<a[i];
    输出换行
    return ;
}
int compare(int a[],int b[])
{
    定义i
    if(a[0]>b[0]) return 1;
    if(a[0]<b[0]) return -1;
    for(i=a[0];i>0;i--)
    {
        if(a[i]>b[i]) return 1;
        if(a[i]<b[i]) return -1;
    }
    return 0;
}
void jian(int a[],int b[])
{
    定义flag,i;
    flag=compare(a,b);
    if(flag==0)
    {
        a[0]=0;
        return ;
    }
    if(flag==1)
    {
        for(i=1;i<=a[0];i++)
        {
            if(a[i]<b[i])
            {
                a[i+1]--;
                a[i]+=10;
            }
            a[i]-=b[i];
        }
        while(a[0]>0&&a[a[0]]==0) a[0]--;
        return ;
    }
}
void numcpy(int p[],int q[],int det)
{
    for(int i=1;i<=p[0];i++) q[i+det-1]=p[i];
    q[0]=p[0]+det-1;
}
void chugao(int a[],int b[],int c[])
{
    定义i,tmp[1001];
    c[0]=a[0]-b[0]+1;
    for(i=c[0];i>0;i--)
    {
        memset(tmp,0,sizeof(tmp));
        numcpy(b,tmp,i);
        while(compare(a,tmp)>=0)
        {
            c[i]++;
            jian(a,tmp);
        }
    }
    while(c[0]>0&&c[c[0]]==0) c[0]--;
    return ;
}
int main()
{
    memset(a,0,sizeof(a));
    memset(b,0,sizeof(b));
    memset(c,0,sizeof(c));
    init(a);init(b);
    chugao(a,b,c);
    print(c);
    print(a);
    return 0;
}

很长的哦

1
蒋智航
蒋智航
高级天翼
高级天翼
for(int i=len1-1;i+1;i--) a1[++p]=s1[i]-'0';p=0;
    for(int i=len2-1;i+1;i--) a2[++p]=s2[i]-'0';p=0;
    a1[0]=len1;
    a2[0]=len2;
    a4[0]=len1-len2+1;
    for(int i=a4[0];i;i--){
        memset(a3,0,sizeof a3);
        for(int j=1;j<=a2[0];j++) a3[j+i-1]=a2[j];
        a3[0]=a2[0]+i-1;
        while(bi(a1,a3)) a4[i]++,jian(a1,a3);

 

0
方亦欧
方亦欧
新手光能
新手光能

书上有,你可以参考一下。

0
张睿杰
张睿杰
初级天翼
初级天翼

我有一百的,你是要函数的还是没函数的

0
0
0
我要回答