zoukankan      html  css  js  c++  java
  • 洛谷P1480 A/B Problem(高精除高精)

    P1480 A/B Problem

    题目描述

    输入两个整数a,b,输出它们的商(a<=10^5000,b<=10^9)

    输入输出格式

    输入格式:

    两行,第一行是被除数,第二行是除数。

    输出格式:

    一行,商的整数部分

    输入输出样例

    输入样例#1: 复制
    10
    2
    输出样例#1: 复制
    5
    #include<iostream>
    #include<cstring>
    using namespace std;
    int a[5001],b[5001],c[5001],d,i;
    void init(int a[])
    {
        string s;
        cin>>s;
        a[0]=s.length();
        for(i=1;i<=a[0];i++)
        a[i]=s[a[0]-i]-'0';
    }
    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;
    }
    int compare(int a[],int b[])
    {
        int 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[])
    {
        int 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]--;
             
        }
    }
    void chugao(int a[],int b[],int c[])
    {
        int i,tmp[5001];
        c[0]=a[0]-b[0]+1;
        for(int 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]--; 
    }
    void printf(int a[])
    {
        int i;
        if(a[0]==0)
        {
            cout<<0<<endl;
            return;
        }
            for(int i=a[0];i>0;i--)
            cout<<a[i];
            cout<<endl;
            return;
     } 
    int main()
    {
        init(a);
        init(b);
        chugao(a,b,c);
        printf(c);
        //printf(a); 
    } 
  • 相关阅读:
    Xcode8 pod install 报错 “Generating Pods project Abort trap
    适配iOS10 的相关权限设置
    YTKNetworkConfig配置HTTPS请求
    HTTPS学习总结
    设置导航栏nav全透明
    更新 Python 库文件
    有道词典的本地/扩展/离线词库
    三国群英传2修改MOD基础
    添加/删除/修改Windows 7右键的“打开方式”
    Sublime Text安装Package Control
  • 原文地址:https://www.cnblogs.com/thmyl/p/7732635.html
Copyright © 2011-2022 走看看