| 
        
             Given two numbers represented as strings,return multiplication of the numbers as a string.  Note:
 
The numbers can be arbitrarily large and are non-negative.Converting the input string to integer is?NOT?allowed.You should?NOT?use internal library such as?BigInteger.     Subscribe?to see which companies asked this question 
 
 分析: ac代码: class Solution { public:? ? string multiply(string num1,string num2) {
 ? ? ? ? int n1=num1.length(),n2=num2.length(),L=n1+n2,i,j;
 ? ? ? ? vector<int>ires(L,0);
 ? ? ? ? string rets(L,'0');
 //模拟手算从最后一位开始处理?? ? ? ? for(i=n1-1;i>=0;i--)
 ? ? ? ? {
 ? ? ? ? ? ? for(j=n2-1;j>=0;j--)
 ? ? ? ? ? ? ? ? ires[i+j+1]+=(num1[i]-'0')*(num2[j]-'0');
 ? ? ? ? }
 //进位?? ? ? ? for(i=L-1;i>0;i--)
 ? ? ? ? {
 ? ? ? ? ? ? ires[i-1]+=ires[i]/10;
 ? ? ? ? ? ? ires[i]=ires[i]%10;
 ? ? ? ? }
 //转换成字符串?? ? ? ? for(i=L-1;i>=0;i--)
 ? ? ? ? {
 ? ? ? ? ? ? rets[i]=ires[i]+'0';
 ? ? ? ? }
 //前导0 ? ? ? ? for(i=0;i<L;i++) ? ? ? ? { ? ? ? ? ? ? if(rets[i]!='0') ? ? ? ? ? ? ? ? break; ? ? ? ? } ? ? ? ? if(i==L) ? ? ? ? ? ? return "0"; ? ? ? ? return rets.substr(i,L-i); ? ? } };  (编辑:南平站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |