Умножьте на 27, используя только битовый сдвиг, сложение и вычитание как можно меньше раз.C#

Место общения программистов C#
Anonymous
Умножьте на 27, используя только битовый сдвиг, сложение и вычитание как можно меньше раз.

Сообщение Anonymous »

Недавно у меня была техническая оценка C# для заявления о приеме на работу, где один из вопросов был:


Вопрос 11: Реализуйте функцию int Mult27(int a) так, чтобы она возвращала результат a, умноженный на 27. Сделайте это, используя только следующие функции (предоставлены):
  • Код: Выделить всё

    SHL(a,b)
    сдвигает все биты целого числа a влево на b мест.
  • Код: Выделить всё

    ADD(a,b)
    складывает два целых числа, получая a+b.
  • Код: Выделить всё

    SUB(a, b)
    вычитает два целых числа, чтобы получить a-b.
  • Делайте это, используя как можно меньше вызовов этих функций, предположим, что a всегда является положительным целым числом.

    Код: Выделить всё

    public class AnswerEleven
    {
    int SHL(int a, int b)
    {
    return a

Вернуться в «C#»