写一段快速乘的代码 C++
时间: 2023-03-19 14:22:30 浏览: 80
以下是一段 C 代码实现快速乘算法:
```c
#include <stdio.h>
int fast_multiply(int a, int b) {
int result = 0;
while (b != 0) {
if (b & 1) {
result += a;
}
a <<= 1;
b >>= 1;
}
return result;
}
int main() {
int a = 5;
int b = 7;
int result = fast_multiply(a, b);
printf("%d * %d = %d\n", a, b, result);
return 0;
}
```
在上述代码中,`fast_multiply` 函数使用了快速乘算法。这个算法的核心思想是将乘法转化为位运算,从而提高计算效率。具体实现方式是通过将一个数左移一位相当于它乘以2,右移一位相当于它除以2。同时,使用按位与操作判断一个数是否为奇数。
在 `fast_multiply` 函数中,我们通过一个循环,不断判断 `b` 是否为 0,如果不为 0,则判断 `b` 是否为奇数,如果是奇数,则将 `a` 加到 `result` 中。然后将 `a` 左移一位,将 `b` 右移一位。最终返回 `result`。
在 `main` 函数中,我们调用了 `fast_multiply` 函数,将结果存储在 `result` 变量中,并通过 `printf` 输出结果。