大数乘法模板C++

it2022-05-05  273

大数乘法:涉及到大数乘法的运算直接套用函数就行。

#include<iostream> #include<string> #include<algorithm> #include<vector> using namespace std; string chengfa(string a,string b) { int m=a.length() ,n=b.length() ; vector<int> tmp(m+n-1); for(int i=0;i<n;i++) { for(int j=0;j<m;j++) { tmp[i+j]+=(a[i]-'0')*(b[i]-'0'); } } for(int i=tmp.size()-1;i>0;i--) { tmp[i-1]+=tmp[i]/10; tmp[i]%=10; } while(tmp[0]>9) { tmp.insert(tmp.begin(),tmp[0]/10); tmp[1]%=10; } string ans; for(int i=0,len=tmp.size();i<len;i++) ans+=tmp[i]+'0'; if(ans[0]=='0') return 0; return ans; } int main() { string a,b; while(cin>>a>>b) { cout<<chengfa(a,b)<<endl; } return 0; }

最新回复(0)