c++俄罗斯农夫乘法算法实现
时间: 2024-10-16 17:01:15 浏览: 35
C++实现大数乘法算法代码
5星 · 资源好评率100%
在 C++ 中,"俄罗斯农夫乘法"(Russian Peasant Multiplication)是一种古老的手算乘法方法,它利用简单的加法操作来进行长数目的乘法计算。这个算法基于两个数相乘可以分解成一系列较小的数相加的过程。以下是基本步骤的 C++ 实现:
```cpp
#include <iostream>
using namespace std;
// 俄罗斯农夫乘法函数
int russianPeasantMultiply(int a, int b) {
// 如果其中一个数为0,则直接返回另一个数
if (a == 0 || b == 0)
return a + b;
// 执行循环,每次将b除以2并将结果加到总和上
int sum = 0;
while (b > 0) {
// 如果b是奇数,将当前a加到总和上
if (b % 2 != 0)
sum += a;
// 将a翻倍
a *= 2;
// 将b除以2
b /= 2;
}
return sum;
}
int main() {
int num1, num2;
cout << "请输入两个数字: ";
cin >> num1 >> num2;
cout << "使用俄罗斯农夫乘法得到的结果是: " << russianPeasantMultiply(num1, num2);
return 0;
}
```
在这个例子中,用户输入两个整数,程序会通过 Russian Peasant Multiplication 算法计算它们的乘积,并打印出结果。
阅读全文