Сообщение Re: Вопрос на элегантность решения от 02.10.2014 12:25
Изменено 02.10.2014 12:37 ry
Здравствуйте, Shmj, Вы писали:
S>Вопрос: определить что вторая слева цифра числа делится на 3.
S>Примеры: 13, 89022 -- делится (3 и 9), 725933 -- не делится (2).
S>Решение должно быть понятным и быстрым.
Первый вариант.
— сдвигать заданное число вправо, пока оно не попадёт в диапазон [10, 99];
— полученное число разделить на 10;
— остаток от деления проверить на делимость на 3 без остатка.
Второй вариант:
начальные данные: массив А, содержащий числа 13, 16, 19,..., 93, 96, 99.
— сдвигать заданное число вправо, пока оно не попадёт в диапазон [10, 99];
— проверить, содержится ли полученное число в массиве А.
Третий вариант:
Надо думать.
S>Вопрос: определить что вторая слева цифра числа делится на 3.
S>Примеры: 13, 89022 -- делится (3 и 9), 725933 -- не делится (2).
S>Решение должно быть понятным и быстрым.
Первый вариант.
— сдвигать заданное число вправо, пока оно не попадёт в диапазон [10, 99];
— полученное число разделить на 10;
— остаток от деления проверить на делимость на 3 без остатка.
Второй вариант:
начальные данные: массив А, содержащий числа 13, 16, 19,..., 93, 96, 99.
— сдвигать заданное число вправо, пока оно не попадёт в диапазон [10, 99];
— проверить, содержится ли полученное число в массиве А.
Третий вариант:
Надо думать.
Re: Вопрос на элегантность решения
Здравствуйте, Shmj, Вы писали:
S>Вопрос: определить что вторая слева цифра числа делится на 3.
S>Примеры: 13, 89022 -- делится (3 и 9), 725933 -- не делится (2).
S>Решение должно быть понятным и быстрым.
Первый вариант.
— сдвигать заданное число вправо, пока оно не попадёт в диапазон [10, 99];
— полученное число разделить на 10;
— остаток от деления проверить на делимость на 3 без остатка.
Второй вариант:
начальные данные: массив А, содержащий числа 13, 16, 19,..., 93, 96, 99.
— сдвигать заданное число вправо, пока оно не попадёт в диапазон [10, 99];
— проверить, содержится ли полученное число в массиве А.
Третий вариант:
Более правильный алгоритм второго варианта.
начальные данные: массив А размером 100, в индексах 13, 16, 19,..., 93, 96, 99 записана 1, в остальных — 0.
— сдвигать заданное число вправо, пока оно не попадёт в диапазон [10, 99];
— получить значение массива по индексу, равному полученному на первом шаге числу.
S>Вопрос: определить что вторая слева цифра числа делится на 3.
S>Примеры: 13, 89022 -- делится (3 и 9), 725933 -- не делится (2).
S>Решение должно быть понятным и быстрым.
Первый вариант.
— сдвигать заданное число вправо, пока оно не попадёт в диапазон [10, 99];
— полученное число разделить на 10;
— остаток от деления проверить на делимость на 3 без остатка.
Второй вариант:
начальные данные: массив А, содержащий числа 13, 16, 19,..., 93, 96, 99.
— сдвигать заданное число вправо, пока оно не попадёт в диапазон [10, 99];
— проверить, содержится ли полученное число в массиве А.
Третий вариант:
Более правильный алгоритм второго варианта.
начальные данные: массив А размером 100, в индексах 13, 16, 19,..., 93, 96, 99 записана 1, в остальных — 0.
— сдвигать заданное число вправо, пока оно не попадёт в диапазон [10, 99];
— получить значение массива по индексу, равному полученному на первом шаге числу.