好的,我们是原创的.:)
unsigned int mul(unsigned int a, unsigned int b)
{
if ( !a || !b ) return 0;
if ( a == 1 ) return b;
if ( b == 1 ) return a;
return mul(a-1, b-1)+a+b-1;
}
Run Code Online (Sandbox Code Playgroud)
如果你真的想给同龄人和你的老师留下深刻的印象,请提交 - 这既是递归的又是快速的!
int mul(int a, int b)
{
if ( a < 0 ) return -mul(-a,b);
if ( b < 0 ) return -mul(a,-b);
if ( b == 0 ) return 0;
return (mul(a,b>>1)<<1)+(b&1?a:0);
}
Run Code Online (Sandbox Code Playgroud)
补充:作为额外的奖励,这正确处理正,负和0值.
这是功能:
int mulitplication(x,y)
{
if (y==0)
{
return 0;
}
else
return x+multiplication(x,y-1);
}
}
Run Code Online (Sandbox Code Playgroud)