Cho em sai ở đâu ạ,em cảm ơn
#include<iostream>
using namespace std;
int m,n;
int main()
{
cout<<"Nhap m va n";
cin>>m>>n;
for (int kq=0;m=0;m>>=1,n<<=1){if(m%2) kq += n}
cout<<"Ket qua la:"<<kq;
}
Phương pháp Ấn độ cho phép nhân 2 số nguyên bằng cách chỉ dùng các phép toán nhân đôi, chia đôi và cộng. Các phép nhân đôi và chia đôi thực chất là phép toán dịch bit về bên trái (nhân) hoặc bên phải (chia) 1 bit. Đây là các phép toán cơ sở trong bộ xử lý, do vậy dùng phương pháp này sẽ làm cho việc nhân các số nguyên được thực hiện rất nhanh. Có thể tóm tắt phương pháp như sau: Giả sử cần nhân m với n. Kiểm tra m nếu lẻ thì cộng thêm n vào kq (đầu tiên kq được khởi tạo bằng 0), sau đó lấy m chia 2 và n nhân 2. Quay lại kiểm tra m và thực hiện như trên. Quá trình dừng khi không thể chia đôi m được nữa (m = 0), khi đó kq là kết quả cần tìm (tức kq = m*n).

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?