大数乘法模板
2014-10-11 16:06
363 查看
#include <iostream> #include <stdio.h> #include <string.h> #include <vector> #include <algorithm> #include <string> using namespace std; string s1,s2; string add(string a,string b) { string s; int i=0,j=0,l=0; int m,ans=0,k; while(a[i]&&b[j]) { m=a[i]-'0'+b[j]+ans-'0'; ans = m / 10; s += (m%10+'0'); i++; j++; } if(i==a.size()) { while(i != b.size()) { m = ans + b[i] - '0'; ans = m / 10; s += m % 10 + '0'; i++; } if(ans) s += ans + '0'; } else if(i==b.size()) { while(i != a.size()) { m = ans + a[i] - '0'; ans = m / 10; s += m % 10 + '0'; i++; } if(ans) s += ans + '0'; } return s; } void dashuchengfa() { int i,j,k=0,ans,num,w; string anss="0",ss[10000]; for(i=0; i<s1.size(); i++) { for(w=0; w<i; w++) ss[i]+='0'; for(j=0; j<s2.size(); j++) { num=(s1[i]-'0')*(s2[j]-'0')+k; ans=num%10; k=num/10; ss[i]+=(ans+'0'); } if(k!=0) ss[i]+=(k+'0'); k=0; } for(i=0; i<s1.size(); i++) anss=add(anss,ss[i]); reverse(anss.begin(),anss.end()); cout<<anss<<endl; } int main() { //freopen("a.txt","r",stdin); // freopen("aa.txt","w",stdout); while(cin>>s1>>s2) { reverse(s1.begin(),s1.end()); reverse(s2.begin(),s2.end()); dashuchengfa(); } return 0; }
相关文章推荐
- 高精度 大数加法 乘法 除法 幂 模板
- 大数模板 大数加法,大数减法,大数乘法,大数除法,大数比较等操作
- [BZOJ2179]-大数乘法-FFT模板
- <模板> Hdu 1402 A * B Problem Plus 大数乘法
- 大数乘法和大数除法模板
- 大数乘法模板
- 51nod 1028 大数乘法 V2 【FFT模板题】
- 大数乘法模板
- 2018_1_27_Very Easy !!!_不错的大数乘法,可当模板
- Java大数模板——加法、减法、乘法、除法、开方、求余
- 高精度 大数加法 乘法 除法 模板
- 大数乘法模板
- HDU 1402 FFT模板题,求大数乘法
- Product(大数乘法模板)
- POJ 3199 Uncle Jack大数的幂 利用高精度乘法模板
- 大数乘法 poj 2389 ||大数乘法 hdu1402 FFT模板
- POJ 3199 Uncle Jack大数的幂 利用高精度乘法模板
- HDU 1402 A * B Problem Plus (大数乘法,FFT模板题)
- POJ 2389 Bull Math 高精度(大数)乘法 模板
- pku 2389(大数乘法模板)