При заданных натуральных числах и h выведите w столбцов и h строк текста, как описано ниже.
Первый ряд начинается с 11 0
с, второй ряд - с 10 1
с, третий - с 9 2
с и т. Д. До десятого ряда с двумя 9
с. В каждой из этих первых десяти строк после начального ряда последовательных цифр следующая младшая цифра появляется два раза, прежде чем вторая следующая младшая цифра появляется два раза, причем этот шаблон повторяется вечно. Если происходит 0
s, цифры после него всегда 9
s.
Ряды ниже десятого ряда такие же, как ряд непосредственно над ним, но смещены вправо на один. Новая появившаяся цифра совпадает с предыдущей самой левой цифрой, если она не была рядом с другим экземпляром самого себя. В противном случае это следующая наивысшая цифра (цикл от 9 до 0).
Первые элементов являются следующими:
00000000000
11111111110
22222222211
33333333221
44444443322
55555544332
66666554433
77776655443
88877665544
99887766554
Вот изображение с цветным текстом, чтобы сделать рисунок более четким.
Если вам нужно создать меньше столбцов / строк, вам нужно просто обрезать текст выше.
Если вам нужно создать больше столбцов / строк, чем это, существующие лестницы должны быть расширены. Если больше столбцов / строк добавляет новые последовательности последовательных цифр, цифры должны циклически выбираться из целых чисел. Таким образом, для входа выход должен быть
000000000009988
111111111100998
222222222110099
333333332211009
444444433221100
555555443322110
666665544332211
777766554433221
888776655443322
998877665544332
099887766554433
009988776655443
100998877665544
Вот изображение этого текста с цветом:
правила
- Вывод можно дать любым удобным способом .
- Либо полная программа или функция приемлемы. Если функция, вы можете вернуть вывод, а не распечатать его.
- Вы можете вернуть список строк, если хотите.
- Вы можете вернуть двумерный массив цифр или список списков цифр, если хотите.
- Стандартные лазейки запрещены.
Самый короткий код выигрывает.
Контрольные примеры
1,1
0
3,2
000
111
20,1
00000000000998877665
11,10
00000000000
11111111110
22222222211
33333333221
44444443322
55555544332
66666554433
77776655443
88877665544
99887766554
15,13
000000000009988
111111111100998
222222222110099
333333332211009
444444433221100
555555443322110
666665544332211
777766554433221
888776655443322
998877665544332
099887766554433
009988776655443
100998877665544
Ответы:
Python 3,
9493787774 байта-1 байт от Dylnan
-15 байт, возвращая список списков вместо печати из xnor
-1 байт, переключая порядок
(j-i+10)//2%10
иj
частиif
-else
-3 байта от Джо Кинга путем изменения
if
-else
в список.Попробуйте онлайн!
источник
C (gcc) ,
10110099 байтовПопробуйте онлайн!
источник
printf("%d",
->putchar(48+
Холст, 14 байтов
Попробуй это здесь!
Делая это, я заметил, что в нескольких местах у меня были отрицательные модули в Canvas (здесь это означало, что
»
- floor div 2 - округлено до 0). Предыдущий 18-байтный ответ, который работал без исправлений, больше не работает (потому что я сохраняю толькоmain.js
между версиями), но у TIO все еще есть старая версияОбъяснение:
источник
Древесный уголь ,
2017 байтПопробуйте онлайн! Ссылка на подробную версию кода. Объяснение:
Изменить: 3 байта сохранены путем переключения на алгоритм @ dzaima.
источник
Желе , 14 байт
Попробуйте онлайн!Или посмотрите (постформатированный) набор тестов .
Как?
источник
Котлин , 78 байт
Попробуйте онлайн!
источник
Желе , 19 байт
Использует очень похожий подход к пицце и Нейлу . Сохранено 1 байт благодаря Джонатану Аллану .
Попробуйте онлайн!
Вспомогательная ссылка
Это монадическая ссылка (эквивалент Jelly функции с одним аргументом), которая может быть вызвана из следующей ссылки с помощью быстрой
Ç
. Он принимает список из двух целых чисел и выполняет следующие действия:Уменьшить вычитанием.
Положите половину целого числа и добавьте 5, затем возьмите по модулю 10.
Основная ссылка
ç
А для каждой пары в декартовом произведении, если их сумма меньше 9, то:
Получить голову пары (первый элемент). В противном случае,
Назовите вспомогательную ссылку (объясненную выше) на паре.
Наконец, разделите полученный список на куски длиныY и возьми каждый мод 10.
источник
p’Ḣ_/HḞ+ʋS<9Ɗ?€5s%⁵
илиp’Ḣ_/:2+ʋS<9Ɗ?€5s%⁵
, либо в виде монады сp’Ḣ_/:2+5ƲS<9Ɗ?€s%⁵