模板——高精度

高精度——除法

#include <cstdio>
#include <cstring>
#include <iostream>
using namespace std;
const int maxn=20010;
char s1[maxn],s2[maxn];
int l1,l2,p,ans[maxn];
int flag=0;
int main()
{
    cin>>s1>>s2;
    l1=strlen(s1);l2=strlen(s2);
    if(l1<l2) flag=1;
    while(l2<=l1)
    {
        while(strncmp(s1,s2,l2)>=0)
        {
            for(int i=l2-1;i>=0;i--)
                s1[i]=s1[i]-s2[i]+'0';
            for(int i=l2-1;i>=0;i--)
                if(s1[i]<'0')
                {
                    s1[i-1]--;
                    s1[i]+=10;
                }
            ans[p]++;
        }
        p++;l2++;
        for(int i=l2-1;i>=1;i--)
            s2[i]=s2[i-1];
        s2[0]='0';
    }
    int k=0;
    for(int i=0;i<l1;i++)
        if(ans[i])
        {
            k=i;
            break;
        }
    if(flag==0)
    {
        for(int i=k;i<p;i++)
            printf("%d",ans[i]);
    }
    else printf("0\n");
    return 0;
}

高精度——乘法

 

posted @ 2016-11-17 20:46  [lemon]  阅读(220)  评论(0编辑  收藏  举报
……