因此,对于我的任务,我应该编写一个带有2个无符号参数并输出其产品的函数。仅使用递归函数和递增乘以C
unsigned multiply(unsigned a, unsigned b);
例如,
multiply(3, 4)
应该返回12
的事情是,我不能使用+, - ,/,*或%的运营商。我只允许调用函数,并用++和 - 递增/递减。
我已增加2个参数的另一个功能:
unsigned add(unsigned a, unsigned b)
{
if (a > 0)
add(--a, ++b);
else return(b);
}
,我不准叫这个,我有需要的任何辅助功能一起。
我已经花了30分钟尝试各种排列,但我无法获得正确的数学;我来的最接近的是让b翻倍,但这不会削减它。有任何想法吗?
编辑:忘了提及!对于/ while循环不允许任何
啊哈!我不得不将第二个(a> 0)更改为(a> 1),但是这很好用!谢谢 –
在这种情况下,'multiply(0,5)'的结果会怎样? – BLUEPIXY