算法:两数乘积,不能用乘号和循环
2018-08-17 本文已影响48人
大牛之路
算法
给定两个数相乘,不能使用乘号或者循环
解法 1:
使用递归,a*b = a+a+a+...(b个a)
int mul(int a, int b){
if (a == 0 || b == 0)
return 0;
if (b == 1)
return a;
if (a == 1)
return b;
return a + mul(a, b - 1);
}
int mult(int a,int b){
int m = mul(a, abs(b));
return (b<0)?(-m):m;
}
解法 2:
没说不能用除非呀,对不对!!!!
int mult2 (int a,int b){
return b != 0 ? a/(1.0/b):0;
}