码迷,mamicode.com
首页 > 其他好文 > 详细

高精度除法

时间:2016-04-25 21:13:15      阅读:207      评论:0      收藏:0      [点我收藏+]

标签:

本来想直接一个一个地减的~~~~

太耗时了。

技术分享
 1 #include<iostream>
 2 #include<cstring>
 3 int lena,lenb,lenc,lend,lene;
 4 int comp(int d[],int b[])
 5 {
 6     int len;
 7     if(lend>lenb) len=lend;
 8     else len=lenb;
 9     while(len>=1&&d[len-1]==b[len-1]) len--;
10     if(len==0) return 0;
11     else return d[len-1]-b[len-1];
12 }
13 void k(int d[])
14 {
15     int i;
16     for(i=lend-1;i>=0;i--)
17         d[i+1]=d[i];
18     d[0]=0;
19     lend++;
20 }
21 void chf(int d[],int b[],int e[])
22 {
23     int i,j,len;
24     if(lend>lenb)len=lend;
25     else len=lenb;
26     for(i=0;i<len;i++)
27     {
28         e[i]+=d[i]-b[i];
29         if(e[i]<0)
30         {
31             e[i+1]--;
32             e[i]+=10;
33         }
34     }
35     while(len>1&&e[len-1]==0)len--;
36     lene=len;
37 }
38 void ch(int a[],int b[],int c[],int d[])
39 {
40     int e[1000];
41     int i,j,len;
42     len=lena;
43     lend=0;
44     for(i=len-1;i>=0;i--)
45     {
46         k(d);
47         d[0]=a[i];
48         while(comp(d,b)>=0)
49         {
50            memset(e,0,sizeof(e));
51            chf(d,b,e);
52            memcpy(d,e,sizeof(e));
53            lend=lene;
54            c[i]++;
55         }
56     }
57     while(len>1&&c[len-1]==0) len--;
58     lenc=len;
59 }
60 int main()
61 {
62     int i,j;
63     char sa[10001],sb[10001];
64     int a[10001],b[10001],c[10001],d[10001];
65     scanf("%s%s",sa,sb);
66     memset(c,0,sizeof(c));
67     memset(a,0,sizeof(a));
68     memset(b,0,sizeof(b));
69     memset(d,0,sizeof(d));
70     lena=strlen(sa);
71     lenb=strlen(sb);
72     for(j=0,i=lena-1;i>=0;i--) a[j++]=sa[i]-48;
73     for(j=0,i=lenb-1;i>=0;i--) b[j++]=sb[i]-48;
74     ch(a,b,c,d);
75     for(i=lenc-1;i>=0;i--)
76     printf("%d",c[i]);
77     printf("\n");
78     for(i=lend-1;i>=0;i--) printf("%d",d[i]);
79 }
View Code

 

高精度除法

标签:

原文地址:http://www.cnblogs.com/wxjor/p/5432563.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!