Следующий счастливый билетик
Вводим текущий номер билетика - на выходе получаем номер следующего счастливого билетика и сколько билетов до него осталось
Попросили тут задачу по информатике решить - написать программу, которая для заданного номера билетика вычисляет сколько осталось до следующего "счастливого" билетика. Ну все в курсе наверно - номера билетов обычно шестизначные, и "счастливым" считается тот, у которого сумма первых трех цифр равняется сумме последних трех цифр. Что коду пропадать, вдруг кому понадобится - решил сразу сделать калькулятор.
Если бы просили просто напечатать все номера счастливых билетов - было бы очень просто - шесть вложенных циклов, ну а здесь пришлось немного заморочиться для вытаскивания цифры с указанной позиции в билете.
Формула примерно такая:
где
n - число,
p - позиция цифры в числе (1 - самая крайняя правая)
d - искомая цифра
% - операция получения остатка от целочисленного деления (взятие по модулю), например, 151 % 100 = 51.
Таким образом, для извлечения цифры 5 с третьей позиции из числа 100500 будет такой расчет:
Ну а на javascript это будет как-то так:
function extractNumberFromPosition(n, p) {
return (n%Math.pow(10,p) - i%Math.pow(10,p-1))/Math.pow(10,p-1);
}
Комментарии