乘法加法
Multiplying through Addition
我想创建一个函数,通过使用可以同时处理负数和正数的加法来查找两个整数的乘积。
这是我到目前为止的代码... 得到疯狂的数字作为结果..我是个菜鸟..谢谢
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
为负数,则可以翻转x
和y
的符号。 这否定了答案,并为您提供了一个积极的循环y
。
优化是检查两个值中哪个更大,并使用较小的值作为循环变量。
..是的,这是HMWK。但对不起,我不明白你的意思..
假设您有两个整数X
和Y
。 如果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
是肯定的,我会将Y
份X
. 如果Y
为负数,我将-Y
份-X
加在一起。
如果这仍然没有帮助,那么我建议你坐下来考虑一段时间。
相关文章:
- 没有找到相关文章