首页 > 学院 > 开发设计 > 正文

大整数除法

2019-11-08 03:06:17
字体:
来源:转载
供稿:网友
#include<cstdio>#include<iostream>#include<cstring>using namespace std;void bigchu(char *a,char *b,char *c,int& lc){    int la=strlen(a),lb=strlen(b),f1;    int i=0;    lc=0;    while(i<=la-lb)    {        f1=0;        c[lc]='0';        while(1)        {            if(i==0||a[i-1]=='0')                for(int j=i; j<i+lb; j++)                {                    if(a[j]>b[j-i]) break;                    if(a[j]<b[j-i])                    {                        f1=1;                        break;                    }                }            if(f1) break;            for(int j=lb-1; j>=0; j--)                if(a[i+j]>=b[j])                    a[i+j]-=b[j]-'0';                else a[i+j]+=10-b[j]+'0',a[i+j-1]--;            c[lc]++;        }        if(c[lc]!='0'||i!=0) lc++;        i++;    }}int main(){    char a[1000],b[1000],c[1000];    int lc;    cin>>a>>b;    bigchu(a,b,c,lc);    if(lc!=0)        for(int i=0; i<lc; i++)            cout<<c[i];    else cout<<0;    cout<<endl;}
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表