Информация об изменениях

Сообщение Re: Вопрос на элегантность решения от 02.10.2014 13:08

Изменено 02.10.2014 13:14 Abyx

Здравствуйте, Shmj, Вы писали:

S>Вопрос: определить что вторая слева цифра числа делится на 3.


S>Примеры: 13, 89022 -- делится (3 и 9), 725933 -- не делится (2).


S>Решение должно быть понятным и быстрым.


1) проверяем что у число больше 9
2) пока число больше 127, сдвигаем число на 1 бит и считаем количество бит.
получаем число в форме x + 2^n, x < 128
3) по таблице находим делится цифра или нет: table[x][n]
Re: Вопрос на элегантность решения
Здравствуйте, Shmj, Вы писали:

S>Вопрос: определить что вторая слева цифра числа делится на 3.


S>Примеры: 13, 89022 -- делится (3 и 9), 725933 -- не делится (2).


S>Решение должно быть понятным и быстрым.


1) проверяем что у число больше 9
2) пока число больше 127, сдвигаем число на 1 бит и считаем количество бит.
получаем число в форме x + 2^n + ε, x < 128
3) по таблице находим делится цифра или нет: table[x][n]