又发现的高精板子
/+++++++++++++++++++++++++++++++++++++++/ #include<iostream> #include<string> #include<algorithm> using namespace std; const int maxn = 10005; int a[maxn],b[maxn],c[maxn],ans[maxn],len_a,len_b,len_ans; void read(int *a,int &len) { string cur; cin>>cur; len = cur.length(); for(int i=0;i<len;i++) a[i]=cur[i]-48; reverse(a,a+len); } int main() { read(a,len_a); read(b,len_b); len_ans=max(len_a,len_b); for(int i=0;i<=len_ans;i++) { ans[i]=a[i]+b[i]+c[i]; if(ans[i]>9) c[i+1]=ans[i]/10,ans[i]-=10; } while(ans[len_ans]>0) len_ans++; for(int i=len_ans-1;i>=0;i--) cout<<ans[i]; return 0; }
/---------------------------------------------------------------------------------/ #include<iostream> #include<cstring> #include<algorithm> using namespace std; const int maxn=5005; int a[maxn],b[maxn],c[maxn],ans[maxn],len_a,len_b,len_ans; void read(int *a,int &len) { string cur; cin>>cur; len=cur.length(); for(int i=0;i<len;i++) a[i]=cur[i]-48; reverse(a,a+len); } int main() { read(a,len_a); read(b,len_b); len_ans=max(len_a,len_b); for(int i=0;i<len_ans;i++) { ans[i]=a[i]-b[i]-c[i]; if(ans[i]<0) c[i+1]++,ans[i]+=10; } while(len_ans>1&&ans[len_ans-1]==0) len_ans--; for(int i=len_ans-1;i>=0;i--) { cout<<ans[i]; } return 0; }
/**************************************************/ #include<iostream> #include<string> #include<algorithm> using namespace std; const int maxn=5005; int a[maxn],b[maxn],ans[maxn],len_a,len_b,len_ans; void read(int *a,int &len) { string cur; cin>>cur; len=cur.length() ; for(int i=0;i<len;i++) a[i]=cur[i]-48; reverse(a,a+len); } int main() { read(a,len_a); read(b,len_b); len_ans=len_a+len_b-1; for(int i=1;i<len_a;i++) for(int j=0;j<len_b;j++) ans[i+j]+=a[i]*b[j]; for(int i=0;i<len_ans;i++) if(ans[i]>9) ans[i+1]+=ans[i]/10,ans[i]%=10; while(ans[len_ans]) len_ans++; for(int i=len_ans-1;i>=0;i--) cout<<ans[i]; return 0; }
////////////////////////////////////////////////////////////////////////////////// #include<iostream> #include<cstdio> #include<algorithm> using namespace std; const int maxn=5005; int a[maxn],b[maxn],ans[maxn],c[maxn],len_a,len_b,len_ans; void read(int *a) { string cur; cin>>cur; a[0]=cur.length() ; for(int i=1;i<=a[0];i++) a[i]=cur[i-1]-48; reverse(a+1,a+a[0]+1); } bool big() { if(c[0]>b[0]) return true; if(c[0]<b[0]) return false; for(int i=c[i];i>=1;i--) if(c[i]<b[i]) return false; else if(c[i]>b[i]) return true; return true; } void mminus() { int cc=0; for(int i=1;i<=c[0];i++) { c[i]-=b[i]+cc; if(c[i]<0){c[i]+=10;cc=1;} else cc=0; } while(c[0]>1&&c[c[0]]==0) c[0]--; } void output(int *a) { for(int j=a[0];j>=1;j--) cout<<a[j]; cout<<endl; } int main() { read(a); read(b); c[0]=0; for(int i=a[0];i>=1;i--) { c[1]=a[i]; c[0]++; while(big()) { mminus(); ans[i]++; } } ans[0]=a[0]; while(ans[0]>1&&ans[ans[0]]==0) ans[0]--; output(ans); output(c); cin>>a[0]; return 0; }
我博客里有大量的从别的博客复制过来的代码,分析,以及理解,但我一律会在文章后面标记原博客大佬博客名,其中部分会加以连接。
绝无抄袭的意思,只是为了我在复习的时候找博客方便。
如有原作者对此有不满,请在博客留言,我一定会删除该博文。