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");