Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

โปรแกรม C++ เพื่อใช้การคูณชาวนารัสเซีย


อัลกอริธึม Russian Peasant คูณสองตัวเลข เป็นอัลกอริธึมที่รวดเร็วในการคำนวณการคูณตัวเลขยาวสองตัว

อัลกอริทึม

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

โค้ดตัวอย่าง

#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;
}

ผลลัพธ์

200
42