首页 > 其他 > 详细

模板:大整数乘法

时间:2014-01-16 00:14:37      阅读:368      评论:0      收藏:0      [点我收藏+]
bubuko.com,布布扣
 1 string mul(string str1,string str2)
 2 {
 3     vector<int> v_res(str1.size()+str2.size(),0);
 4     string::size_type i,j;
 5     vector<int>::size_type k,p;
 6 
 7     reverse(str1.begin(),str1.end());
 8     reverse(str2.begin(),str2.end());
 9     for(i = 0; i != str1.size(); ++i)
10     {
11         for(j = 0; j != str2.size(); ++j)
12         {
13             v_res[i+j] += (str1[i]-0) * (str2[j] - 0);
14         }
15     }
16     for(k = 0; k != v_res.size() - 1; ++k)
17     {
18         v_res[k+1] += v_res[k] / 10;
19         v_res[k] = v_res[k] % 10;
20     }
21 
22     for(p = v_res.size() - 1; p != -1; --p)
23     {
24         if(v_res[p] != 0) break;
25     }
26     if(p == -1) p = 0;
27 
28     string s_res(p+1,0);
29     for(k = p; k != -1; --k) s_res[p-k] = char(v_res[k] + 0);
30     
31 
32     return s_res;
33 
34 }
bubuko.com,布布扣

模板:大整数乘法

原文:http://www.cnblogs.com/mobileliker/p/3516920.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!