高精度除法

我现在终于知道 染色问题 这道题写高精度是为什么错了,太弱了!

 1 #include<iostream>
 2 #include<cstring>
 3 #include<fstream>
 4 using namespace std;
 5 ifstream fin("div.in");
 6 ofstream fout("div.out");
 7 
 8 string s1,s2;int la,a[250],lb,b[250],c[250],d[500],ans[250];
 9 
10 void Print(int e[]){
11      int i=249;
12      while(e[i]==0&&i>0) i--;
13      while(i>=0) fout<<e[i--];
14      fout<<endl;//system("pause");
15      return ; 
16      }
17 
18 int Big(int e[],int f[]){
19     for(int i=249;i>=0;--i) if(e[i]>f[i]) return 1;
20     else if(e[i]<f[i]) return 0;
21     return 0;  //相等是返回0
22     }
23 
24 void Jian(int e[],int f[]){
25      for(int i=249;i>=0;--i)
26      {
27        e[i]-=f[i];
28        int j=i;
29        while(e[j]<0)
30        {e[j+1]-=1;e[j]+=10;j++;}
31              }
32      return ;
33      }
34 
35 int main()
36 {
37     fin>>s1>>s2;
38     
39     la=s1.size()-1;
40     for(int i=0;i<s1.size();++i)
41     a[i]=s1[s1.size()-1-i]-'0';
42     lb=s2.size()-1;
43     for(int i=0;i<s2.size();++i)
44     b[i]=s2[s2.size()-1-i]-'0';
45   //  Print(b);
46     la-=lb;int k; //la++;
47     while(la>=0)
48     {//cout<<la<<"  ";
49       for(k=1;k<=10;++k)   //注意 k
50       {
51         memset(c,0,sizeof(c));
52         for(int i=0;i<=lb;++i)
53         c[i]=b[i]*k;
54         for(int i=0;i<=lb;++i)
55         if(c[i]>9) {c[i+1]+=c[i]/10;c[i]%=10;}
56         memset(d,0,sizeof(d));
57         for(int i=0;i<=lb+2;++i)  //lb+1
58         d[i+la]=c[i];      
59      //   Print(c);Print(d);Print(a);
60         if(Big(d,a)) break;
61               }
62      // cout<<k<<endl; 
63       ans[la]=k-1;
64       if(k==1) {la--;continue;}
65       k--;
66       memset(c,0,sizeof(c));
67       for(int i=0;i<=lb;++i)
68       c[i]=b[i]*k;
69       for(int i=0;i<=lb;++i)
70       if(c[i]>9) {c[i+1]+=c[i]/10;c[i]%=10;}
71       memset(d,0,sizeof(d));
72       for(int i=0;i<=lb+2;++i)
73       d[i+la]=c[i];  
74       
75       Jian(a,d);
76       la--;     
77                 }
78     
79     Print(ans);
80     return 0;
81     
82     }
posted on 2012-11-04 15:24  怡红公子  阅读(243)  评论(0编辑  收藏  举报