#include <iostream>
using namespace std;
int mulths(int u,int v)
{
unsigned u0,v0,w0;
int u1,v1,w1,w2,t;
u0 = u & 0xFFFF;
u1 = u >> 16;
v0 = v & 0xFFFF;
v1 = v >> 16;
w0 = u0 * v0;
t = u1 * v0 + (w0 >> 16);
w1 = t & 0xFFFF;
w2 = t >> 16;
w1 = u0 * v1 + w1;
return u1 * v1 + w2 + (w1 >> 16);
}
int main()
{
int u,v;
cin >> u >> v;
cout << mulths(u, v) << endl;
return 0;
}
это возвращает продукт двух чисел да или он возвращает самый значительный бит? beacuse, когда я вхожу в 5 и 7, и он возвращается 0вопрос о Multiply высокий подписан
тот же результат –
Обратите внимание, что вам необходимо использовать достаточно большие значения, если у вас есть 32-битный Интс, например, в десятичной форме, 100000 x 100000 даст высокий результат слова из 2. –