Computer >> Máy Tính >  >> Lập trình >> C ++

Chương trình C ++ để thực hiện phép nhân nông dân Nga

Thuật toán nông dân Nga để nhân hai số. Đây là một thuật toán nhanh chóng để tính toán phép nhân hai số dài.

Thuật toán

Begin
   Russianpeasant(num1, num2)
   Int result=0
   while (num2 > 0)
      if (num2 and 1)
         result = result + n;
         num1= num1 left shift 1;
         num2= num2left shift 1;
   return result
End

Mã mẫu

#include <iostream>
using namespace std;
unsigned int russianPeasant(unsigned int n, unsigned int m) {
   int result = 0;
   while (m > 0) {
      if (m & 1)
         result = result + n;
         n = n << 1;
         m = m >> 1;
   }
   return result;
}
int main() {
   cout << russianPeasant(10, 20) << endl;
   cout << russianPeasant(7, 6) << endl;
   return 0;
}

Đầu ra

200
42