homechevron_rightУчебаchevron_rightИнформатика

Следующий счастливый билетик

Вводим текущий номер билетика - на выходе получаем номер следующего счастливого билетика и сколько билетов до него осталось

Creative Commons Attribution/Share-Alike License 3.0 (Unported)

Этот материал распространяется на условиях лицензии Creative Commons Attribution/Share-Alike License 3.0 (Unported). Это означает, что вы можете размещать этот контент на своем сайте или создавать на его основе собственный (в том числе и в коммерческих целях), при условии сохранения оригинального лицензионного соглашения. Кроме того, Вы должны отметить автора этой работы, путем размещения HTML ссылки на оригинал работы https://planetcalc.ru/7958/. Пожалуйста оставьте без изменения все ссылки на других авторов данной работы или работы, на основе которой создана данная работа (если таковые имеются в спроводительном тексте).

Попросили тут задачу по информатике решить - написать программу, которая для заданного номера билетика вычисляет сколько осталось до следующего "счастливого" билетика. Ну все в курсе наверно - номера билетов обычно шестизначные, и "счастливым" считается тот, у которого сумма первых трех цифр равняется сумме последних трех цифр. Что коду пропадать, вдруг кому понадобится - решил сразу сделать калькулятор.

Если бы просили просто напечатать все номера счастливых билетов - было бы очень просто - шесть вложенных циклов, ну а здесь пришлось немного заморочиться для вытаскивания цифры с указанной позиции в билете.
Формула примерно такая:
d=\frac{n \% 10^p - n \% 10^{p-1}}{10^{p-1}}
где
n - число,
p - позиция цифры в числе (1 - самая крайняя правая)
d - искомая цифра
% - операция получения остатка от целочисленного деления (взятие по модулю), например, 151 % 100 = 51.

Таким образом, для извлечения цифры 5 с третьей позиции из числа 100500 будет такой расчет:
d=\frac{100500 \% 1000 - 100500 \% 100}{100}

Ну а на javascript это будет как-то так:

function extractNumberFromPosition(n, p) {
    return (n%Math.pow(10,p) - i%Math.pow(10,p-1))/Math.pow(10,p-1);
}

PLANETCALC, Следующий счастливый билетик

Следующий счастливый билетик

Следующий счастливый билетик
 
Следующий счастливый билетик будет
 

Creative Commons Attribution/Share-Alike License 3.0 (Unported) PLANETCALC, Следующий счастливый билетик

Комментарии