11081. Электронный замок
Предатели опять заблокировали
двери. И чтобы их открыть, необходимо ввести код.
Поле для ввода кода представляет
из себя бесконечную последовательность 7-сегментных индикаторов. Известно, что
кодом является самое большое натуральное число, для отображения которого
используется не более n горящих сегментов.
Помогите команде выяснить код.
Вход. В первой строке дано одно целое число
n (2 ≤ n ≤ 105)
– максимальное количество горящих
сегментов при отображении числа.
Выход. Выведите одно число – необходимый
код.
Пример
входа |
Sample output |
6 |
111 |
конструктив
Если n четное, то для максимизации кода выгодно использовать только единицы. Выводим
n / 2 единиц.
Если n нечетное, то первой цифрой ставим 7, а далее (n – 3) / 2 единиц.
Пример
Для n = 8 ответом будет 1111.
Для n = 9 ответом будет 7111.
Для n = 10 ответом будет 11111.
Реализация алгоритма
Читаем входное значение n.
scanf("%d", &n);
Если
n нечетное, то первой цифрой
выводим 7.
if (n % 2 == 1)
{
printf("7");
Уменьшим
n на 3, так как 3 горящих сегмента используются для цифры 7.
n -= 3;
}
Выводим
n / 2 единиц.
while (n > 0)
{
printf("1");
n -= 2;
}
printf("\n");