题目链接
复数乘法
思路分析
首先先提取a+bi中的a和b 计算结果中的a和b 将结果中的a,b通过int2string函数转换成string类型。
代码
class Solution {
public:
void getNum( string a, int & a1, int & b1) {
int n1 = a. find( '+' ) ;
bool flag = true;
for ( int i = 0 ; i < a. size( ) - 1 ; i+ + ) {
if ( i < n1) {
if ( a[ i] == '-' ) flag = false;
else a1 = a1 * 10 + a[ i] - '0' ;
} else if ( i == n1) {
if ( !flag) a1 = - 1 * a1;
flag = true;
} else {
if ( a[ i] == '-' ) flag = false;
else b1 = b1 * 10 + a[ i] - '0' ;
}
}
if ( !flag) b1 = b1 * - 1 ;
}
string int2string( int a) {
string ans = "" ;
if ( a < 0 ) {
ans += '-' ;
a = - 1 * a;
} else if ( a == 0 ) {
ans += '0' ;
return ans;
}
string temp = "" ;
int div = 10 ;
while ( a > 0 ) {
temp += a % div + '0' ;
a = a / div;
}
for ( int i = temp. size( ) - 1 ; i >= 0 ; i- - )
ans += temp[ i] ;
return ans;
}
string complexNumberMultiply( string a, string b) {
int a1 = 0 , a2 = 0 , b1 = 0 , b2 = 0 ;
string ans = "" ;
getNum( a, a1, b1) ;
getNum( b, a2, b2) ;
int a3 = a1 * a2 - b1 * b2;
int b3 = a1 * b2 + a2 * b1;
ans += int2string( a3) + '+' + int2string( b3) + 'i' ;
return ans;
}
} ;