Позвольте мне представить вам номера GAU
GAU(1) = 1
GAU(2) = 1122
GAU(3) = 1122122333
GAU(4) = 11221223331223334444
GAU(6) = 11221223331223334444122333444455555122333444455555666666
...
GAU(10) = 11221223331223334444122333444455555122333444455555666666122333444455555666666777777712233344445555566666677777778888888812233344445555566666677777778888888899999999912233344445555566666677777778888888899999999910101010101010101010
Этот вызов довольно прост!
Дано целое число n> 0, найти количество цифр GAU (n)
пример
Давайте сделаем GAU (4),
сделаем следующие шаги (пока не доберемся до 4) и объединим их
[1][122][122333][1223334444]
Вы должны написать каждое число столько раз, сколько его значение, но вы должны считать каждый раз от 1
Давайте попробуем сделать GAU (5),
нам нужно будет посчитать от 1 до 1
[1]
затем от 1 до 2 (но повторяя каждое число столько раз, сколько его значение )
[122]
затем от 1 до 3
[122333]
затем от 1 до 4
[1223334444]
и, наконец, от 1 до 5 (это последний шаг, потому что мы хотим найти GAU ( 5 ))
[122333444455555]
Теперь мы предпринимаем все эти шаги и объединяем их,
в результате получается GAU (5)
11221223331223334444122333444455555
Нас интересует количество цифр этих номеров GAU.
Контрольные примеры
Input⟼Output
n ⟼ Length(GAU(n))
1 ⟼ 1
2 ⟼ 4
3 ⟼ 10
10 ⟼ 230
50 ⟼ 42190
100 ⟼ 339240
150 ⟼ 1295790
Это вызов для игры в гольф .
Самый короткий код в байтах победит.
Если у вас остались какие-либо вопросы, пожалуйста, дайте мне знать.
Я действительно хочу, чтобы все здесь поняли эту сложную магическую модель
n ⟼ Length(GUA(n))
, а не GAU (n).Ответы:
SOGL V0.12 ,
1110875 байтовПопробуй здесь! - ожидается, что она будет вызвана как функция с входом в стеке и пустым полем ввода.
7-байтовая альтернатива, берущая ввод из поля ввода:
Попробуй здесь!
источник
push that numbers length without popping the number
приятноHaskell , 45 байт
Попробуйте онлайн!
источник
Brain-Flak , 166 байт
Попробуйте онлайн!
объяснение
источник
Шелуха , 5 байт
Попробуйте онлайн!
объяснение
источник
Желе , 7 байт
Попробуйте онлайн!
источник
05AB1E , 5 байтов
Попробуйте онлайн!
объяснение
источник
Python 2 , 53 байта
Попробуйте онлайн!
источник
Шелуха , 7 байт
Попробуйте онлайн!
Ungolfed / Пояснение
источник
Шелуха , 7 байт
Попробуйте онлайн!
объяснение
источник
JavaScript (ES6),
5755 байтПопробуйте онлайн!
источник
Python 2 ,
5958 байтЕще один байт пыли благодаря Джонатану Фреху.
Попробуйте онлайн!
Не коротко, но ... какого черта.
источник
len(`i`)*i for
->i*len(`i`)for
.CJam , 20 байтов
Попробуйте онлайн!
Номер передается в поле ввода.
Необработанное объяснение: (пример ввода = 2)
Это кажется трудным, когда объяснил лол.
источник
J, 24 байта
Подобный высокоуровневый подход к ответу APL от dzaima, переведенному на J, за исключением того, что мы вычисляем длину числа, сначала превратив его в строку, а не в журналы, и мы используем хук J, чтобы умножить эту длину на само число:
(*#@":"0)
. После этого это просто сумма суммы сканирования.Попробуйте онлайн!
источник
1(#.]*#\*#\.)1#@":@+i.
также работает для 22 байтовR , 39 байт
Проверьте все контрольные примеры!
Простой алгоритм; Я наблюдал, как и большинство из них делали, что
i
в1:n
,i
повторяетсяi*(n-i+1)
раз. Поэтому я создаю этот вектор, подсчитываю количество символов в каждом и суммирую их.источник
Python 2,
5150 байтисточник
JavaScript (ES6),
5042 байтаОбновлено: теперь в основном порт того, что делают другие ответы.
Контрольные примеры
Показать фрагмент кода
источник
Mathematica, 66 байт
источник
QBIC , 21 байт
источник
На самом деле , 13 байтов
Попробуйте онлайн!
Объяснение:
источник
Japt ,
1211109 байтПопробуйте или проверьте все числа от 1 до 150 .
объяснение
Неявный ввод целого числа
U
.Создайте массив целых чисел от 1 до,
U
а затем создайте подмассивы от 1 до каждого целого числа.Передайте элементы каждого подмассива через функцию.
Преобразуйте текущий элемент в string (
s
), получите его length (Ê
) и умножьте на элемент.Уменьшите основной массив путем добавления после того, как сначала сделаете то же самое для каждого подмассива.
источник
Jq 1,5 ,
824943 байтарасширенный
Пробный прогон
Попробуйте онлайн! также jqplay.org
источник
С накоплением , 28 байтов
Попробуйте онлайн!
Некоторые могут спросить: «В какой момент псевдонимы не читаются?» Если это не близко, у вас есть очень либеральное определение «читабельность».
объяснение
источник
Рубин ,
4140 байтПопробуйте онлайн!
источник
C # (.NET Core) ,
948074 байтаПопробуйте онлайн!
Я надеялся найти прямое решение, как то, что ответ @ kamoroso94 , но сдался, потому что тратил на него слишком много времени. Вероятно, есть способ сделать это, но формулу необходимо корректировать для каждого шага величины.
Подтверждения
14 байтов сохранено благодаря @someone
6 байтов сэкономлено благодаря @Kevin Cruijssen
источник
n=>{int b=0,a=0,i;for(;a++<n;)for(i=0;i++<a;)b+=i.ToString().Length*i;return b;}
Попробуйте онлайн! для 80 байтов и производительности.i.ToString()
можно(i+"")
сохранить еще несколько байтов.MATL , 15 байт
Попробуйте онлайн!
Объяснение:
источник
:ttP*Y"VXzn
Perl 6 , 36 байт
Попробуй это
Expanded:
источник
Древесный уголь ,
1814 байтовПопробуйте онлайн! Ссылка на подробную версию кода. Редактировать: Использование
Sum
спасло мне 4 байта. Объяснение:источник
Σ
вместо ...Sum
это все еще 18 байтов:Print(Cast(Sum(Map(InclusiveRange(1, InputNumber()), Sum(Map(InclusiveRange(1, i), Times(l, Length(Cast(l)))))))));
Incremented
: P≔⊕NθIΣEθ×⁻θι×ιLIι
. Тем не менее, используяIncremented
вместоInclusiveRange
бритья 4 байта от моего предыдущего комментария!Ом v2 , 7 байт
Попробуйте онлайн!
источник
[Dyalog APL],
2220 байтовПопробуйте онлайн!
Объяснение:
источник
Рёда , 31 байт
Попробуйте онлайн!
источник