从0开始计数,第i位与第j位相乘得到的数就存在结果的第i+j位与第i+j+1位。
 
string 
multiply(string num1
, string num2
) {
	int size1 
= (int)num1
.size();
	int size2 
= (int)num2
.size();
	string 
res(size1
+size2
,'0');
	for (int i 
= size1
-1; i 
>= 0; --i
) {
		for (int j 
= size2
-1; j 
>= 0; --j
) {
			int bitRes 
= (num1
[i
] - '0') * (num2
[j
] - '0') + (res
[i
+j
+1]-'0');
			res
[i 
+ j
]= res
[i 
+ j
]-'0' + (bitRes 
/ 10)+'0';
			res
[i 
+ j 
+ 1] = (bitRes 
% 10) +'0';
		}
	}
	
	while(res
[0] == '0' && res
.size()>1)
		res
.erase(0,1);
	return res
;
}
                
                
                
        
    
                    转载请注明原文地址: https://yun.8miu.com/read-56367.html