A04 高精度除法
// 高精度 O(n) #include<bits/stdc++.h> using namespace std; void div(string sa,int b){ int m=sa.size(); vector<int> a(m+1,0),c(m+1,0); for(int i=0; i<m; i++) a[i]=sa[m-1-i]-'0'; long long t=0; for(int i=m-1; i>=0; i--){ t=t*10+a[i]; c[i]=t/b; t%=b; } while(!c[m] && m) m--; for(int i=m; ~i; i--) cout<<c[i]; } int main(){ string a; int b; cin>>a>>b; div(a,b); return 0; }
// 高精度 O(n) #include<bits/stdc++.h> using namespace std; struct HP{ string s; HP(string x="0"):s(x){}; //构造 const HP operator/(const int &b){ //重载/ string sa=s,res; int m=sa.size(); vector<int> a(m+1,0),c(m+1,0); for(int i=0; i<m; i++) a[i]=sa[m-1-i]-'0'; long long t=0; for(int i=m-1; i>=0; i--){ t=t*10+a[i]; c[i]=t/b; t%=b; } while(!c[m] && m) m--; //去除前导零 for(int i=m; i>=0; i--) res+=char(c[i]+'0'); return HP(res); } friend istream& operator>>(istream &in,HP &t){ //重载>> in>>t.s; return in; } friend ostream& operator<<(ostream &out,const HP &t){ //重载<< out<<t.s; return out; } }; int main(){ HP a; int b; cin>>a>>b; cout<<a/b; return 0; }
P1932 A+B A-B A*B A/B A%B Problem - 洛谷
浙公网安备 33010602011771号