умножение двух чисел

Несколько дней назад у меня было интервью с Qualcomm. Я был склонен к одному вопросу, вопрос, который ты выглядел очень простым, но ни я, ни интервьюер не были удовлетворены моими ответами, если кто-то может предложить какое-либо хорошее решение этой проблемы.

Вопрос такой:

Умножьте 2 числа без использования каких-либо циклов и сложений и, конечно же, без умножения и деления.

На что я ответил: рекурсия

Он сказал что-нибудь еще на очень низком уровне.

Моя настоящая мысль, которая пришла мне в голову, заключалась в сдвиге битов, но сдвиг битов приведет только к умножению числа на степень двойки, а для других чисел мы, наконец, должны произвести сложение.

Например: 10 * 7 может быть выполнено как: (двоичное из 7 ~~ 111) 10 << 2 + 10 << 1 + 10 40 + 20 + 10 = 70

Но опять же сложение было запрещено.

Есть мысли по этому поводу, ребята.

6
задан menjaraz 12 February 2012 в 15:18
поделиться