乘法加法

Multiplying through Addition

本文关键字:      更新时间:2023-10-16

我想创建一个函数,通过使用可以同时处理负数和正数的加法来查找两个整数的乘积。

这是我到目前为止的代码... 得到疯狂的数字作为结果..我是个菜鸟..谢谢

double multi(double n1, n2)
{
double answer(0), i=0;
do
{
answer += n1; i++;
} while (i < n2);
return answer;
}

您可以从使用整数而不是双精度开始,实际上将它们作为参数传递。

int multi( int x, int y )
{
int answer = 0;
// stuff goes here...
return answer;
}

我怀疑这是家庭作业,所以我不会逐字逐句地给你代码......

但请考虑,如果一个值为负数,则结果将相对于答案(如果该值为正值)被否定。 实际上,如果您要添加x并执行y次,那么如果y为负数,则可以翻转xy的符号。 这否定了答案,并为您提供了一个积极的循环y

优化是检查两个值中哪个更大,并使用较小的值作为循环变量。


..是的,这是HMWK。但对不起,我不明白你的意思..

假设您有两个整数XY。 如果Y是积极的,很容易看到:

X * Y = (X + X + X + X + ...)

现在,如果Y是负数呢? 我将用-Y来表示:

X * -Y = -(X * Y)
= -(X + X + X + X + ...)
= (-X - X - X - X - ...)
= ((-X) + (-X) + (-X) + (-X) + ...)

因此,如果Y是肯定的,我会将YX. 如果Y为负数,我将-Y-X加在一起。

如果这仍然没有帮助,那么我建议你坐下来考虑一段时间。

相关文章:
  • 没有找到相关文章