A04 高精度除法
视频链接:A04 高精度算法 除法_哔哩哔哩_bilibili
#include <iostream> #include <cstring> #include <algorithm> using namespace std; const int N=5005; int a[N],b,c[N]; int len; void div(int a[],int b,int c[]){ //a/b=c long long t=0; for(int i=len;i>=1;i--){ t=t*10+a[i]; //被除数 c[i]=t/b; //存商 t%=b; //余数 } while(c[len]==0&&len>1) len--; //去0 } int main(){ char A[N]; cin>>A>>b; len=strlen(A); for(int i=1;i<=len;i++) a[i]=A[len-i]-'0'; div(a,b,c); for(int i=len;i;i--) cout<<c[i]; return 0; }
#include <iostream> #include <algorithm> #include <vector> using namespace std; vector<int> a,c; int b,pos; int main(){ string A; cin>>A>>b; for(int i=A.size()-1; ~i; i--) a.push_back(A[i]-'0'); long long r=0; for(int i=a.size()-1; ~i; i--){ r=r*10+a[i]; //被除数 c.push_back(r/b); //存商 r%=b; //余数 } for(int i=0;i<c.size();i++) if(c[i]){pos=i; break;} for(int i=pos;i<c.size();i++)cout<<c[i]; return 0; }