Одне кільце, щоб правити ними всі. Один рядок, щоб їх містити всі


43

Завдання: Виведіть рядок, який містить кожне додатне ціле число строго нижче 1000.

Очевидною відповіддю було б об'єднати кожен з них, і це створило б струну з 2890 символів (спасибі манатурка), щоб уникнути такого простого відповіді, довжина рядка повинна бути менше 1500 символів. Ось простий код Java, який видає Рядок 1200 символів.

import org.junit.Test;

import java.util.ArrayList;
import java.util.List;
import java.util.TreeSet;

import static org.junit.Assert.assertTrue;

/**
 * Created with IntelliJ IDEA.
 * User: fab
 * Date: 05/11/13
 * Time: 09:53
 * To change this template use File | Settings | File Templates.
 */
public class AStringToContainThemAll {

    @Test
    public void testsubStrings() throws Exception {
        String a = generateNewString();
        boolean cool = true;
        for (int i = 0; i < 1000; i++) {
            assertTrue(a.contains(Integer.toString(i)));
        }
    }

    private String generateNewString() {
        List<Integer> myTree = new ArrayList<Integer>();
        String finalString = new String("100");
        for (int i = 10; i < 1000; i++) {
            myTree.add(i);
        }
        while (myTree.size() > 0) {
            if (finalString.contains(Integer.toString(myTree.get(0)))) {
                myTree.remove(0);
            } else {
                String substringLong = finalString.substring(finalString.length() - 2, finalString.length());
                boolean found = false;
                loop:
                for (Integer integer : myTree) {
                    if (integer.toString().startsWith(substringLong) && !finalString.contains(integer.toString())) {
                        finalString = finalString.concat(integer.toString().substring(2, 3));
                        myTree.remove(integer);
                        found = true;
                        break loop;
                    }
                }
                if(! found){
                    finalString = finalString.concat(myTree.get(0).toString());
                    myTree.remove(0);
                }
            }


        }
        return finalString;
    }
}

Найкоротший виграш коду, бонусний бал за найкоротший рядок!


11
Оптимальний рядок - 1002 символи.
Пітер Тейлор

8
В основному ви просите послідовність de Bruijn B(10, 3) , але оскільки ви не дозволяєте циклічного обгортання, потрібно повторити перші два символи.
Пітер Тейлор

3
Але я хочу, щоб рядок містив 1, 2 або 56, не обов'язково 001 002 та 056.
Fabinout

6
Вашу проблему вирішити неможливо, оскільки ви сказали, що число не ціле . Струна повинна мати нескінченну довжину, щоб вмістити всі додатні числа нижче 1000.
Рамчандра Апте

11
@RamchandraApte І все-таки будь-яка рядок, навіть з нескінченною довжиною, не вистачить більшості цифр ;-)
Говард

Відповіді:


19

Гольфскрипт - 13 байт, 1315 вихід

991,{`.$2>>},

Сказане вибирає ті числа з 0-990 , перша цифра яких є найбільшою цифрою числа, тобто остання цифра відсортованого представлення рядків лексикографічно менша, ніж сама рядок. Логіка така:

Для 3-значного числа abc , якщо a - не найбільша цифра числа, число, яке я пропускаю, оскільки воно буде охоплено одним із двох випадків пізніше:

  1. b <c (наприклад, 123 )
    Оскільки c є найбільшою цифрою, номер кабіни не буде пропущений. У цьому прикладі 312 не буде пропущено, а також наступне значення 313 , яке при з'єднанні ( 312 313 ) містить 123 .

  2. b ≥ c (наприклад, 132 )
    Оскільки b є найбільшою цифрою, число bca не буде пропущено. У цьому прикладі 321 не буде пропущено, а також наступне значення 322 , яке при з'єднанні ( 321 322 ) містить 132 . Якщо b = c (наприклад, 122 ), цей випадок також застосовується. Значення bca не буде пропущено, як і раніше, і оскільки a обов'язково менше b , bc <a + 1> також не буде пропущено. У цьому прикладі 221 222 міститься 122 .

Оскільки вищевказаний код перевіряє третю цифру, а не строго останню, всі результати від 0 до 99 включаються в результат. Значення від 1-99 можуть бути пропущені, тому що якщо кожна трицифрова послідовність присутня, то кожна 1-цифрова та двозначна послідовність також повинні бути присутніми.

Значення 991-999 також можуть бути пропущені, оскільки породжуються ( 909 910 , 919 920 , ... 989 990 ).

При 1315 байтах виходу, це зручно за специфікацією проблеми менше 1500.

Вихід:

0123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101110111200201202210211212220221222300301302303310311312313320321322323330331332333400401402403404410411412413414420421422423424430431432433434440441442443444500501502503504505510511512513514515520521522523524525530531532533534535540541542543544545550551552553554555600601602603604605606610611612613614615616620621622623624625626630631632633634635636640641642643644645646650651652653654655656660661662663664665666700701702703704705706707710711712713714715716717720721722723724725726727730731732733734735736737740741742743744745746747750751752753754755756757760761762763764765766767770771772773774775776777800801802803804805806807808810811812813814815816817818820821822823824825826827828830831832833834835836837838840841842843844845846847848850851852853854855856857858860861862863864865866867868870871872873874875876877878880881882883884885886887888900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990

Варіація №1

14 байт, 1233 вихід

991,{`.$-1>>},

Вибираючи строго останню цифру для порівняння, а не третю, багато непотрібних значень менше 100 усуваються, скорочуючи отриманий рядок.

101120212230313233404142434450515253545560616263646566707172737475767780818283848586878890919293949596979899100101110111200201202210211212220221222300301302303310311312313320321322323330331332333400401402403404410411412413414420421422423424430431432433434440441442443444500501502503504505510511512513514515520521522523524525530531532533534535540541542543544545550551552553554555600601602603604605606610611612613614615616620621622623624625626630631632633634635636640641642643644645646650651652653654655656660661662663664665666700701702703704705706707710711712713714715716717720721722723724725726727730731732733734735736737740741742743744745746747750751752753754755756757760761762763764765766767770771772773774775776777800801802803804805806807808810811812813814815816817818820821822823824825826827828830831832833834835836837838840841842843844845846847848850851852853854855856857858860861862863864865866867868870871872873874875876877878880881882883884885886887888900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990

Варіація №2

16 байт, вихід 1127

991,99>{`.$2>>},

Заздалегідь вивівши всі значення, менші за 99 , отриманий рядок можна скоротити ще більше.

99100101110111200201202210211212220221222300301302303310311312313320321322323330331332333400401402403404410411412413414420421422423424430431432433434440441442443444500501502503504505510511512513514515520521522523524525530531532533534535540541542543544545550551552553554555600601602603604605606610611612613614615616620621622623624625626630631632633634635636640641642643644645646650651652653654655656660661662663664665666700701702703704705706707710711712713714715716717720721722723724725726727730731732733734735736737740741742743744745746747750751752753754755756757760761762763764765766767770771772773774775776777800801802803804805806807808810811812813814815816817818820821822823824825826827828830831832833834835836837838840841842843844845846847848850851852853854855856857858860861862863864865866867868870871872873874875876877878880881882883884885886887888900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990

Гольфскрипт - 19 байт, 1016 вихід

910,99>{`.2$\?)>+}/

Вищезазначене нараховує від 99 до 909 , додаючи будь-яке значення, яке ще не з’явилося ( 909 , як правило, є останньою доданою величиною таким чином). Переміщення 99 вперед - це оптимізація, щоб уникнути необхідності 910 ззаду.

Вихід:

99100101102103104105106107108109111112113114115116117118119120122123124125126127128129130132133134135136137138139140142143144145146147148149150152153154155156157158159160162163164165166167168169170172173174175176177178179180182183184185186187188189190192193194195196197198199200202203204205206207208209222223224225226227228229230233234235236237238239240243244245246247248249250253254255256257258259260263264265266267268269270273274275276277278279280283284285286287288289290293294295296297298299300303304305306307308309333334335336337338339340344345346347348349350354355356357358359360364365366367368369370374375376377378379380384385386387388389390394395396397398399400404405406407408409444445446447448449450455456457458459460465466467468469470475476477478479480485486487488489490495496497498499500505506507508509555556557558559560566567568569570576577578579580586587588589590596597598599600606607608609666667668669670677678679680687688689690697698699700707708709777778779780788789790798799800808809888889890899900909

Голфскрипт 26 байт, вихід 999

909.,99>{`..$.2><3$@?+>+}/

Зауважте, що рядок символів 1016, створений попереднім рішенням, є майже оптимальним, за винятком того, що має дві додаткові цифри для кожного кратного 111 (тобто 11111замість 111, 22222а не 222тощо). Рішення можна зробити оптимальним, видаливши ці додаткові цифри (лише вставляючи одну цифру на кожне з цих значень, а не три), і обертаючи 909вперед, усуваючи 9(це відрізняється від попередніх версій, які 9100замість цього перемістилися на задню частину ).

Розгорнуто та прокоментовано:

909.,99>  # add 909 to the stack, and duplicate
          # create an array from 0..908, and 
          # remove the first 99 elements (99..908)
{
  `..     # stringify, duplicate twice

  $.2><   # non-divisibility by 111 check
          # true if the last char of the sorted
          # string is greater than the first char

  3$@?    # first position of this number in
          # the total string so far (-1 if not found)

  +>      # add the two previous results,
          # and slice from that point
          # (see explanation below)

  +       # concat what remains to the total string

}/        # loop over the set

Логіка вибору, які символи додаються, складається з трьох випадків:

  1. 111n , ns
    Значення з першої перевірки дорівнює 1 , а з другого -1 .
    Фрагмент почнеться починаючи з індексу 0 ; це поверне цілу рядок.
  2. 111n , ns
    Значення з першої перевірки дорівнює 1 , а з другого щось ≥ 2 .
    Фрагмент почне починати з індексу ≥ 3 ; він поверне порожню рядок.
  3. 111n , ns
    Значення з першої перевірки дорівнює 0 , а з другого -1 .
    Фрагмент почнеться починаючи з індексу -1 ; він поверне лише останній символ.

Сума логіки полягає в тому, що будь-яке значення, яке ще не з’явилося, буде додане в цілому - якщо тільки воно не кратне 111 , то в цьому випадку буде доданий лише один символ. Усі інші значення будуть ігноровані.

Зауважте, що створена рядок відрізняється від оптимальної, отриманої відповіддю Пітера Тейлора .

Історія:

899,{101+.111%{`.2$\?0<*}{3/9%}if+}/

899,{101+`.2$\?0<\.~111%2*)<*+}/0

899,{101+`.2$\?0<\..2>-!2*>*+}/0

899,{101+`...2>|,1|<2$@?0<*+}/0

999,{`..$.2>>2*>2$@?0<*+}/3>0

899,{101+`..$.2><3$@?+>+}/0

Вихід:

909910010110210310410510610710810911121131141151161171181191201221231241251261271281291301321331341351361371381391401421431441451461471481491501521531541551561571581591601621631641651661671681691701721731741751761771781791801821831841851861871881891901921931941951961971981992002022032042052062072082092223224225226227228229230233234235236237238239240243244245246247248249250253254255256257258259260263264265266267268269270273274275276277278279280283284285286287288289290293294295296297298299300303304305306307308309333433533633733833934034434534634734834935035435535635735835936036436536636736836937037437537637737837938038438538638738838939039439539639739839940040440540640740840944454464474484494504554564574584594604654664674684694704754764774784794804854864874884894904954964974984995005055065075085095556557558559560566567568569570576577578579580586587588589590596597598599600606607608609666766866967067767867968068768868969069769869970070770870977787797807887897907987998008088098889890899900

45

GolfScript ( 35 31 26 символів)

10,{:x),{:&x=x+,{x&@}/}/}/

Вихід є

000100110111200201210211220221222300301302310311312320321322330331332333400401402403410411412413420421422423430431432433440441442443444500501502503504510511512513514520521522523524530531532533534540541542543544550551552553554555600601602603604605610611612613614615620621622623624625630631632633634635640641642643644645650651652653654655660661662663664665666700701702703704705706710711712713714715716720721722723724725726730731732733734735736740741742743744745746750751752753754755756760761762763764765766770771772773774775776777800801802803804805806807810811812813814815816817820821822823824825826827830831832833834835836837840841842843844845846847850851852853854855856857860861862863864865866867870871872873874875876877880881882883884885886887888900901902903904905906907908910911912913914915916917918920921922923924925926927928930931932933934935936937938940941942943944945946947948950951952953954955956957958960961962963964965966967968970971972973974975976977978980981982983984985986987988990991992993994995996997998999

(1020 символів) Це варіант підходу конкатенації слів Ліндона: замість того, щоб використовувати примітивні 1-знакові слова, він використовує кратні 111, для коротшого коду, але для повторного виникнення цих чисел; і замість того, щоб використовувати мінімальні елементи груп кон'югацій, він використовує максимальні елементи, тому що це скорочує петлі.


10,:^{:x^>{x.@:&<+^>{.x>{x&@}*}/}/}%3>0.

при 40 символах (можливо, все ще можна вдосконалити) створює оптимальну рядок, довжиною 999 символів:

100200300400500600700800901101201301401501601701801902102202302402502602702802903103203303403503603703803904104204304404504604704804905105205305405505605705805906106206306406506606706806907107207307407507607707807908108208308408508608708808909109209309409509609709809911121131141151161171181191221231241251261271281291321331341351361371381391421431441451461471481491521531541551561571581591621631641651661671681691721731741751761771781791821831841851861871881891921931941951961971981992223224225226227228229233234235236237238239243244245246247248249253254255256257258259263264265266267268269273274275276277278279283284285286287288289293294295296297298299333433533633733833934434534634734834935435535635735835936436536636736836937437537637737837938438538638738838939439539639739839944454464474484494554564574584594654664674684694754764774784794854864874884894954964974984995556557558559566567568569576577578579586587588589596597598599666766866967767867968768868969769869977787797887897987998889899900

Намагаючись зробити це зробити зворотними рядками, виникає проблема з пропуском кратних 111.

Щоб побачити, що 999 - оптимальна довжина (оскільки мої короткі коментарі вище не переконують усіх), почніть з повної послідовності де Бруйна, яка (взята як циклічний рядок) містить кожну 3-значну послідовність символів від 0 до 9. Оскільки їх 1000, це повинно бути не менше 1000 символів; що це може бути рівно 1000 символів, як правило , доведений ейлерову прогулянки на графіку, вузли якого є дві-значними послідовностями xyз 10 ребрами, кожен з позначених однієї цифри z, які приймають xyдо yz.

Нам не потрібні послідовності початку 0, тому, задавши послідовність де Бреййна, ми можемо обертатися, щоб поставити її 000в кінці. Тоді нам не потрібна жодна послідовність, яка обертається до початку, але нам потрібні два 0s, щоб закінчити послідовність, починаючи з цифри раніше 000, тому ми можемо видалити одну з них, щоб отримати рядок 999 символів. Кожне, що залишилося 0, використовується в кількості, яка не починається з 0.


8
Це справді вражає !!
Fabinout

Я вважаю за краще використовувати фільтруючий або генеративний підхід. Для псевдоліндівського підходу я отримав генеративний підхід до 32 знаків: 10,:^{:x^>{x.@:&<+^>{x&@}/}/}/0.варіюючи, що для справжніх слів Ліндона 10,:^{:x^>{x.@:&<+^>{.x>{x&@}*}/}/}%3>0.(40 знаків) для оптимального рядка.
Пітер Тейлор

Чи можете ви досягти оптимального рядка коротше, не використовуючи провідні нулі для чисел нижче 100?
Випадково832

1
@ Random832 Я майже впевнений, що ти не можеш. Ви повинні включити числа 100, 200, ... 900, тому мінімальний рядок, безумовно, матиме вісім нахилів 00X (один може бути в крайньому правому куті, як вище). Зауважте, що наведений оптимальний рядок не містить "001".
tttppp

2
Зазвичай я не поновлюю код, якого я не розумію, але в цьому випадку я підтримую його, оскільки не розумію. Браво.
Бен Джексон

29

GolfScript, 17 символів

999,{`1$1$?0<*+}/

Звичайний підхід для додавання кожного числа, якщо він ще не присутній у рядку (примітка: 999 не перевіряється чи додається, але міститься вже у висновку).

Вихід - 1133 символів:

01234567891011131415161718192021222425262728293032333536373839404344464748495054555758596065666869707677798087889099100102103104105106107108109110112114115116117118119120124125126127128129130132133134135136137138139140142143144145146147148149150152153154155156157158159160162163164165166167168169170172173174175176177178179180182183184185186187188189190193194195196197198199200203204205206207208209219220221223225226227228229230231235236237238239240243244245246247248249250253254255256257258259260263264265266267268269270273274275276277278279280283284285286287288289290294295296297298299300304305306307308309311329330332334336337338339340342346347348349350354355356357358359360364365366367368369370374375376377378379380384385386387388389390395396397398399400405406407408409422439440443445447448449450453457458459460465466467468469470475476477478479480485486487488489490496497498499500506507508509533549550554556558559560564568569570576577578579580586587588589590597598599600607608609644659660665667669670675679680687688689690698699700708709755769770776778780786790797799800809866877879880887888897898899900908932943954965976979987989

20

У мене немає коду, але я подумав, що хтось може оцінити цей інтуїтивний доказ того, що 999 символів є нижньою межею довжини виводу:

По-перше, кожне 1- і двоцифрове число є частиною 3-розрядного числа, тому ігноруйте все, що менше 100. 100-999 включно - це 900 3-значних чисел.

Найоптимальніший спосіб вирішити проблему - якщо кожен персонаж використовується максимально. Це означає, що цифри максимально перекриваються приблизно так:

123
 234
  345

Тому перше число додасть 3 символи, а кожне наступне число додасть 1 символ. Це дає 3 + 899 = 902 символи як нижню межу.

Однак, коли є нуль, ми не можемо використовувати його для початку нового 3-розрядного числа. Ми можемо використовувати його повторно в середині іншого трицифрового числа, хоча за ним не супроводжується ще один нуль:

120
 203  <- Ok.
  034 <- not a number 100-999.

Але:

100
 002  <- not a number 100-999.
  023 <- not a number 100-999.

Отже, кожен нуль, який з’являється у висновку, розширює вихід на 1 символ - за винятком двох останніх символів, які можуть бути нульовими, оскільки вони не перекривають жодних подальших чисел:

???
 ??0
  ?00

Є 81 число зі строго одним нулем посередині (? 0?), 81 зі строго одним нулем в кінці (?? 0), і 9 з двома нулями (? 00).

Кожне число 0 може поділяти нуль або a? 0? число або номер? 00, але не обидва. ? 0? і? 00 ніколи не може ділитися нулями, тому у виході повинно бути принаймні 81 + 9 * 2 нулі.

Це дає нижню межу 3 + 899 + 81 + 9 * 2 - 2 = 999 символів.

Вибачте, якщо це вважається поза темою, але це було занадто довго, щоб вмістити коментар.


1
Дякую за голову вгору! Це якось смішно, що рядок, що містить усі цілі числа нижче 999, становить 999 символів.
Fabinout

1
Дивіться також: en.wikipedia.org/wiki/De_Bruijn_sequence .
liori

1
Як би смішно помітити, що зберігання кожного числа до 999 в рядку робить його 999 символами. Виправте мене, якщо я помиляюся, але я вважаю, що зберігання кожного числа до 99 робить його довжиною 100 символів.
Fabinout

2
За тим самим аргументом нижня межа дорівнює 2 + 89 + 9 - 1 = 99, але це не доводить, що 99 можливо, лише 98 не є.
Алістер Бакстон

17

Perl, 37 34 33 32 (1136 рік 1132 символів)

for$@(1..999){$_.=$@x!/$@/}print

для друку $ @ (1..999) {$ _. = $ @ якщо! / $ @ /} друк

для $ i (1..999) {$ _. = $ i якщо! / $ i /} друк

для (1..1e3) {$ s. = $ _ якщо $ s! ~ / $ _ /} надрукувати $ s

Виходи:

12345678910111314151617181920212224252627282930323335363738394043444647484950545557585960656668697076777980878890991001021031041051061071081091101121141151161171181191201241251261271281291301321331341351361371381391401421431441451461471481491501521531541551561571581591601621631641651661671681691701721731741751761771781791801821831841851861871881891901931941951961971981992002032042052062072082092192202212232252262272282292302312352362372382392402432442452462472482492502532542552562572582592602632642652662672682692702732742752762772782792802832842852862872882892902942952962972982993003043053063073083093113293303323343363373383393403423463473483493503543553563573583593603643653663673683693703743753763773783793803843853863873883893903953963973983994004054064074084094224394404434454474484494504534574584594604654664674684694704754764774784794804854864874884894904964974984995005065075085095335495505545565585595605645685695705765775785795805865875885895905975985996006076086096446596606656676696706756796806876886896906986997007087097557697707767787807867907977998008098668778798808878888978988999009089329439549659769799879891000

Коротший рядок: 38 37 34 (1020 символів):

$_.=$@x!/$@/while$@=--$@%1e3;print

для ($ @ = 1e3; $ @ -;) {$ _. = $ @ якщо! / $ @ /} друку

для ($ i = 1e3; $ i -;) {$ _. = $ i якщо! / $ i /} друкувати

Виходи:

999998997996995994993992991990988987986985984983982981980978977976975974973972971970968967966965964963962961960958957956955954953952951950948947946945944943942941940938937936935934933932931930928927926925924923922921920918917916915914913912911910908907906905904903902901900888887886885884883882881880877876875874873872871870867866865864863862861860857856855854853852851850847846845844843842841840837836835834833832831830827826825824823822821820817816815814813812811810807806805804803802801800777776775774773772771770766765764763762761760756755754753752751750746745744743742741740736735734733732731730726725724723722721720716715714713712711710706705704703702701700666665664663662661660655654653652651650645644643642641640635634633632631630625624623622621620615614613612611610605604603602601600555554553552551550544543542541540534533532531530524523522521520514513512511510504503502501500444443442441440433432431430423422421420413412411410403402401400333332331330322321320312311310302301300222221220211210201200111110101100

Все ще не задоволений дублюванням, особливо 99999 на початку! Я думаю, що набагато більше перевірок створить набагато більше коду, хоча ...

Редагувати: Додано пропозицію від @Peter Taylor

Редагувати 2: кілька чудових пропозицій від @primo! Дякую


2
Хороший трюк писати 1000 як 1e3, але я вважаю, що це безглуздо. У запитанні сказано, що "строго нижче 1000", це означатиме до 999 включно. (Зразок коду також обробляє 0..999.)
маніпулювання

Відмінна точка! У мене був інший цикл для початку, я змінив це відповідно! Дякую!
Дом Гастінгс

3
Якщо ви використовуєте не алфавітний символ для своєї змінної, чи можете ви вилучити пробіл?
Пітер Тейлор

Ах, так, я можу! Дякую!
Дом Гастінгс

2
Ще кілька незначних удосконалень: замість цього $_.=$@if!/$@/можна використовувати повторення рядків $_.=$@x!/$@/. forМоже бути замінений на whileякості модифікатора заяви, використовуючи по модулю:...while$@=--$@%1e3
Primo

10

APL (20, вихід: 1020)

{∨/⍺⍷⍵:⍵⋄⍵,⍺}/⍕¨⍳999

Пояснення:

  • {∨/⍺⍷⍵:⍵⋄⍵,⍺}: якщо є підрядком , return , else return⍵,⍺
  • /: зменшити над
  • ⍕¨: рядкове представлення кожного з
  • ⍳999: цілі числа від 1до 999.

Вихід:

9999989979969959949939929919909889879869859849839829819809789779769759749739729719709689679669659649639629619609589579569
      55954953952951950948947946945944943942941940938937936935934933932931930928927926925924923922921920918917916915914913
      91291191090890790690590490390290190088888788688588488388288188087787687587487387287187086786686586486386286186085785
      68558548538528518508478468458448438428418408378368358348338328318308278268258248238228218208178168158148138128118108
      07806805804803802801800777776775774773772771770766765764763762761760756755754753752751750746745744743742741740736735
      73473373273173072672572472372272172071671571471371271171070670570470370270170066666566466366266166065565465365265165
      06456446436426416406356346336326316306256246236226216206156146136126116106056046036026016005555545535525515505445435
      42541540534533532531530524523522521520514513512511510504503502501500444443442441440433432431430423422421420413412411
      410403402401400333332331330322321320312311310302301300222221220211210201200111110101100

APL (41, вихід: 999)

'0',⍨⊃{⍵,⍺⍴⍨(1=⍴∪⍺)∨3×~∨/⍺⍷⍵}/⌽⍕¨100+⍳898

Пояснення:

  • ⌽⍕¨100+⍳898: ('999' '998' ... '101')(у зворотному порядку, оскільки скорочення йде вліво в APL, тобто F/a b c ≡ a F (b F c))
  • /: зменшити
  • ⍵,⍺⍴⍨: правий аргумент, а потім перші Nсимволи лівого аргументу, де N:
  • 3×~∨/⍺⍷⍵: 3якщо не є підрядкою , в іншому випадку0
  • (1=⍴∪⍺): 1якщо має лише один унікальний символ, в іншому випадку0
  • : найбільший спільний дільник попередніх двох значень, так що: 1якщо він ще не введений і має лише один унікальний символ, 3якщо він ще не є, але має більше одного унікального символу,0 іншому випадку.
  • '0',⍨: додати нуль до кінця результату

Вихід:

10110210310410510610710810911121131141151161171181191201221231241251261271281291301321331341351361371381391401421431441451
      46147148149150152153154155156157158159160162163164165166167168169170172173174175176177178179180182183184185186187188
      18919019219319419519619719819920020220320420520620720820922232242252262272282292302332342352362372382392402432442452
      46247248249250253254255256257258259260263264265266267268269270273274275276277278279280283284285286287288289290293294
      29529629729829930030330430530630730830933343353363373383393403443453463473483493503543553563573583593603643653663673
      68369370374375376377378379380384385386387388389390394395396397398399400404405406407408409444544644744844945045545645
      74584594604654664674684694704754764774784794804854864874884894904954964974984995005055065075085095556557558559560566
      56756856957057657757857958058658758858959059659759859960060660760860966676686696706776786796806876886896906976986997
      00707708709777877978078878979079879980080880988898908999009099100

8

Ruby: 50 46 символів (1020 символів)

s=""
999.downto(0){|i|s[n=i.to_s]||s+=n}
$><<s

Проба зразка:

bash-4.1$ ruby -e 's="";999.downto(0){|i|s[n=i.to_s]||s+=n};$><<s'
999998997996995994993992991990988987986985984983982981980978977976975974973972971970968967966965964963962961960958957956955954953952951950948947946945944943942941940938937936935934933932931930928927926925924923922921920918917916915914913912911910908907906905904903902901900888887886885884883882881880877876875874873872871870867866865864863862861860857856855854853852851850847846845844843842841840837836835834833832831830827826825824823822821820817816815814813812811810807806805804803802801800777776775774773772771770766765764763762761760756755754753752751750746745744743742741740736735734733732731730726725724723722721720716715714713712711710706705704703702701700666665664663662661660655654653652651650645644643642641640635634633632631630625624623622621620615614613612611610605604603602601600555554553552551550544543542541540534533532531530524523522521520514513512511510504503502501500444443442441440433432431430423422421420413412411410403402401400333332331330322321320312311310302301300222221220211210201200111110101100

Пробіг:

bash-4.1$ ruby -e 's="";999.downto(0){|i|s[n=i.to_s]||s+=n};$><<s' | ruby -ne 'p (0..999).reject{|i|$_[i.to_s]}'
[]

Ruby: 102 97 символів (999 символів)

s=""
999.downto(0){|i|s[n=i.to_s]||[2,1].map{|j|n[0,j]==s[-j,j]&&s+=n[j,9]and break}&&s+=n}
$><<s

Проба зразка:

bash-4.1$ ruby -e 's="";999.downto(0){|i|s[n=i.to_s]||[2,1].map{|j|n[0,j]==s[-j,j]&&s+=n[j,9]and break}&&s+=n};$><<s'
999899799699599499399299199098898798698598498398298198097897797697597497397297197096896796696596496396296196095895795695595495395295195094894794694594494394294194093893793693593493393293193092892792692592492392292192091891791691591491391291191090890790690590490390290190088878868858848838828818808778768758748738728718708678668658648638628618608578568558548538528518508478468458448438428418408378368358348338328318308278268258248238228218208178168158148138128118108078068058048038028018007776775774773772771770766765764763762761760756755754753752751750746745744743742741740736735734733732731730726725724723722721720716715714713712711710706705704703702701700666566466366266166065565465365265165064564464364264164063563463363263163062562462362262162061561461361261161060560460360260160055545535525515505445435425415405345335325315305245235225215205145135125115105045035025015004443442441440433432431430423422421420413412411410403402401400333233133032232132031231131030230130022212202112102012001110100

Пробіг:

bash-4.1$ ruby -e 's="";999.downto(0){|i|s[n=i.to_s]||[2,1].map{|j|n[0,j]==s[-j,j]&&s+=n[j,9]and break}&&s+=n};$><<s' | ruby -ne 'p (0..999).reject{|i|$_[i.to_s]}'
[]

Хороша ідея пройти з 999 до 0, а не навпаки. Завдяки цьому мій метод Java видає рядок 1048 символів (замість 1200).
Fabinout

1
Якщо ви просто переймаєтесь довжиною коду, а не довжиною виводу, ви можете вдосконалити перший, використовуючи діапазон рядків. Щось на кшталт, (?0..?9*3).map{|i|$/[i]||($><<i;$/+=i)}можливо?
Пол Престидж

5

JavaScript, 39

for(k=i="999";~k.indexOf(--i)?i:k+=i;);

Вихід 1020 символів:

999998997996995994993992991990988987986985984983982981980978977976975974973972971970968967966965964963962961960958957956955954953952951950948947946945944943942941940938937936935934933932931930928927926925924923922921920918917916915914913912911910908907906905904903902901900888887886885884883882881880877876875874873872871870867866865864863862861860857856855854853852851850847846845844843842841840837836835834833832831830827826825824823822821820817816815814813812811810807806805804803802801800777776775774773772771770766765764763762761760756755754753752751750746745744743742741740736735734733732731730726725724723722721720716715714713712711710706705704703702701700666665664663662661660655654653652651650645644643642641640635634633632631630625624623622621620615614613612611610605604603602601600555554553552551550544543542541540534533532531530524523522521520514513512511510504503502501500444443442441440433432431430423422421420413412411410403402401400333332331330322321320312311310302301300222221220211210201200111110101100


Підтвердження: for(i=0;i<1000;i++)console.assert(k.indexOf(i)>=0)


5

Математика ( 62 64 символів, 1002 вихід)

Оскільки для цього використовується нативна функція, я все більше ціную красу коротших рішень з нуля. Вихід має 1002 символів.

<< Combinatorica`
"79" <> DeBruijnSequence["0"~CharacterRange~"9", 3]

"799798787770760750740730720710980970960950940930920910108908708608508408308208889998988081009909008007006005004003002000190180170160150140130120119118117116115114113112912812712612512412312213913813713613513413313214914814714614514414314215915815715615515415315216916816716616516416316217917817717617517417317218918818718618518418318219919819719619519419319212111029028027026025024023022922822722622522422392382372362352342332492482472462452442432592582572562552542532692682672662652642632792782772762752742732892882872862852842832992982972962952942932322202103903803703603503403393383373363353349348347346345344359358357356355354369368367366365364379378377376375374389388387386385384399398397396395394343330320310490480470460450449448447446445945845745645546946846746646547947847747647548948848748648549949849749649545444043042041059058057056055955855755695685675665795785775765895885875865995985975965655505405305205106906806706696686679678677689688687699698697676660650640630620610790780779778978879"

1
у вас, здається, відсутні 799 та 997. див. ideone.com/d07bG2 (або напишіть власний чек)
Джастін

Хороший улов. За замовчуванням DeBruijnSequenceпередбачає циклічне обгортання. Попередньо "79", дві останні цифри, вирішує проблему.
DavidC

4

Математика, 51 чол

""<>Table[ToString/@({i,j,k}-1),{i,10},{j,i},{k,i}]

Вихід (1155 знаків):

000100101110111200201202210211212220221222300301302303310311312313320321322323330331332333400401402403404410411412413414420421422423424430431432433434440441442443444500501502503504505510511512513514515520521522523524525530531532533534535540541542543544545550551552553554555600601602603604605606610611612613614615616620621622623624625626630631632633634635636640641642643644645646650651652653654655656660661662663664665666700701702703704705706707710711712713714715716717720721722723724725726727730731732733734735736737740741742743744745746747750751752753754755756757760761762763764765766767770771772773774775776777800801802803804805806807808810811812813814815816817818820821822823824825826827828830831832833834835836837838840841842843844845846847848850851852853854855856857858860861862863864865866867868870871872873874875876877878880881882883884885886887888900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999

Що це робить?
Fabinout

1
Він будує список списків форми , {i, j, k}де iзнаходиться від 0 до 9 і j, kменше i. Потім він перетворює список у рядок.
алефальфа

4

Пітон - 53 63, Вихід 1134

Це досить жорстокий форсиш, але він дійсний. Так, він має первинний нуль, але він зберігає два символи, не маючи range(1,1000).

s=''
for i in range(1e3):s+=`i`*(not`i`in s)
print s

Вищезазначене перетворює DeprecationWarningна використання 1e3 у range()виклику, але це економить характер над використанням 1000.

Існує також трохи більш оптимальна довжина вихідної версії, шляхом реверсування рядка ціною 65 символів (спасибі Res та Filmor за поради) :

Python - 58, 1021 вихід

s=''
for i in range(999,9,-1):s+=`i`*(not`i`in s)
print s

1
Я вважаю, що ваша перша програма має вихідну довжину 1133, а не 1132. У Python 2 (але не Python 3) ви можете скоротити код до 54 символів за допомогою зворотних посилань:for i in range(999):s+=`i`*(not`i`in s)
res

Wot? Вони виймали задню частину? У Гуїдо, мабуть, був день я ненавиджу Перл і все, що схоже на це, коли він вирішував, що тримати
Warren P

1
Ви можете скоротити це на один символ, використовуючи range(999,99,-1)замість range(1000)[::-1].
фільм

І підказка на res все-таки допоможе, str(i)*(str(i)not in s)трохи коротша, ніж i=str(i);s+=[i,''][i in s];)
фільм

@filmor Зроблено менше, і знову менше, використовуючи 1e3замість1000

2

К, 33

{$[#ss[x]@y;x;,/x,y]}/["";$!1000]

В основному те саме, що рішення Говарда - 1133 символи.

01234567891011131415161718192021222425262728293032333536373839404344464748495054555758596065666869707677798087889099100102103104105106107108109110112114115116117118119120124125126127128129130132133134135136137138139140142143144145146147148149150152153154155156157158159160162163164165166167168169170172173174175176177178179180182183184185186187188189190193194195196197198199200203204205206207208209219220221223225226227228229230231235236237238239240243244245246247248249250253254255256257258259260263264265266267268269270273274275276277278279280283284285286287288289290294295296297298299300304305306307308309311329330332334336337338339340342346347348349350354355356357358359360364365366367368369370374375376377378379380384385386387388389390395396397398399400405406407408409422439440443445447448449450453457458459460465466467468469470475476477478479480485486487488489490496497498499500506507508509533549550554556558559560564568569570576577578579580586587588589590597598599600607608609644659660665667669670675679680687688689690698699700708709755769770776778780786790797799800809866877879880887888897898899900908932943954965976979987989

2

Java- 126 98 символів (Java 6)

class b{static{String s="";for(int a=999;a>0;a--)s=s.contains(""+a)?s:s+a;System.out.println(s);}}

Вихід (1020 символів):

999998997996995994993992991990988987986985984983982981980978977976975974973972971970968967966965964963962961960958957956955954953952951950948947946945944943942941940938937936935934933932931930928927926925924923922921920918917916915914913912911910908907906905904903902901900888887886885884883882881880877876875874873872871870867866865864863862861860857856855854853852851850847846845844843842841840837836835834833832831830827826825824823822821820817816815814813812811810807806805804803802801800777776775774773772771770766765764763762761760756755754753752751750746745744743742741740736735734733732731730726725724723722721720716715714713712711710706705704703702701700666665664663662661660655654653652651650645644643642641640635634633632631630625624623622621620615614613612611610605604603602601600555554553552551550544543542541540534533532531530524523522521520514513512511510504503502501500444443442441440433432431430423422421420413412411410403402401400333332331330322321320312311310302301300222221220211210201200111110101100

Може досягти хорошого (за словами Пітера Тейлора , але пізніше він сказав, що 999 був оптимальним) Довжина рядка, додавши кілька символів (+20 символів для 147 118):

class b{static{String s="";for(int a=999;a>0;a--)s=s.contains(""+a)?s:(a+1)%111==0?s+a%10:s+a;System.out.println(s);}}

Вихід (1002 символів):

999899799699599499399299199098898798698598498398298198097897797697597497397297197096896796696596496396296196095895795695595495395295195094894794694594494394294194093893793693593493393293193092892792692592492392292192091891791691591491391291191090890790690590490390290190088878868858848838828818808778768758748738728718708678668658648638628618608578568558548538528518508478468458448438428418408378368358348338328318308278268258248238228218208178168158148138128118108078068058048038028018007776775774773772771770766765764763762761760756755754753752751750746745744743742741740736735734733732731730726725724723722721720716715714713712711710706705704703702701700666566466366266166065565465365265165064564464364264164063563463363263163062562462362262162061561461361261161060560460360260160055545535525515505445435425415405345335325315305245235225215205145135125115105045035025015004443442441440433432431430423422421420413412411410403402401400333233133032232132031231131030230130022212202112102012001110101100

Редагувати : Дякую Fabinout за те, що він вказав, що Java 6 може зберегти 28 символів.


Якщо ви хочете, ви можете компілювати з java 6 і використовувати статичний блок замість System.out.println () !!
Fabinout

@Fabinout Ви маєте на увазі замість а public static void main(String[]a)? (це змінило б мій код ...public static void main(String[]c){...на ...static{...)
Джастін

Так. ви можете спробувати з Java 6.
Fabinout

До речі, ви повинні використовувати exit () в кінці статичного блоку, якщо ви не хочете, щоб ваша програма вийшла з ладу. Незважаючи на те, що в гольфі це не потрібно, щоб не врізатися.
Fabinout

2

Windows PowerShell - 40, 1020 вихід

999..0|%{$s+=if(!($s-match$_)){"$_"}};$s

Вихід:

999998997996995994993992991990988987986985984983982981980978977976975974973972971970968967966965964963962961960958957956955954953952951950948947946945944943942941940938937936935934933932931930928927926925924923922921920918917916915914913912911910908907906905904903902901900888887886885884883882881880877876875874873872871870867866865864863862861860857856855854853852851850847846845844843842841840837836835834833832831830827826825824823822821820817816815814813812811810807806805804803802801800777776775774773772771770766765764763762761760756755754753752751750746745744743742741740736735734733732731730726725724723722721720716715714713712711710706705704703702701700666665664663662661660655654653652651650645644643642641640635634633632631630625624623622621620615614613612611610605604603602601600555554553552551550544543542541540534533532531530524523522521520514513512511510504503502501500444443442441440433432431430423422421420413412411410403402401400333332331330322321320312311310302301300222221220211210201200111110101100

2

Haskell, 75 байт - 1002 вихід

Ситовий підхід, який повертає мінімальне рішення.

(\n->head.filter(\s->and[show k`isInfixOf`s|k<-[1..n]]).map show$[1..])1000

Зауважте, що це рішення непрактично повільно.


Ви повинні включити імпорт Data.Listдля isInfixOf, однак ви можете зберегти 2 байти на гольф це ще небагато: 1) жорстко n = 10002) Використання allбільш andі версія pointfree використання предиката 3) в (!!0)протягом head4) Використання списку осягнення над комбінацією map& filter5) використовувати (<$>)над map:[s|s<-show<$>[1..],all((`isInfixOf`s).show)[1..1000]]!!0
ბიმო

2

Powershell, 36 байт, 1020 вихід

999..9|%{$s+=(,"$_")[$s-match$_]};$s

Вихід:

999998997996995994993992991990988987986985984983982981980978977976975974973972971970968967966965964963962961960958957956955954953952951950948947946945944943942941940938937936935934933932931930928927926925924923922921920918917916915914913912911910908907906905904903902901900888887886885884883882881880877876875874873872871870867866865864863862861860857856855854853852851850847846845844843842841840837836835834833832831830827826825824823822821820817816815814813812811810807806805804803802801800777776775774773772771770766765764763762761760756755754753752751750746745744743742741740736735734733732731730726725724723722721720716715714713712711710706705704703702701700666665664663662661660655654653652651650645644643642641640635634633632631630625624623622621620615614613612611610605604603602601600555554553552551550544543542541540534533532531530524523522521520514513512511510504503502501500444443442441440433432431430423422421420413412411410403402401400333332331330322321320312311310302301300222221220211210201200111110101100

Альтернативно, 69 байт, 1000 вихід

999..9|%{$s+=("$_",($x="$_"[-1]))[2*($s-match$_)+($s+$x-match$_)]};$s

Вихід:

9998997996995994993992991990988987986985984983982981980978977976975974973972971970968967966965964963962961960958957956955954953952951950948947946945944943942941940938937936935934933932931930928927926925924923922921920918917916915914913912911910908907906905904903902901900888788688588488388288188087787687587487387287187086786686586486386286186085785685585485385285185084784684584484384284184083783683583483383283183082782682582482382282182081781681581481381281181080780680580480380280180077767757747737727717707667657647637627617607567557547537527517507467457447437427417407367357347337327317307267257247237227217207167157147137127117107067057047037027017006665664663662661660655654653652651650645644643642641640635634633632631630625624623622621620615614613612611610605604603602601600555455355255155054454354254154053453353253153052452352252152051451351251151050450350250150044434424414404334324314304234224214204134124114104034024014003332331330322321320312311310302301300222122021121020120011101100

Альтернативно, 82 73 байти, вихід 999 (мінімум)

for(;$z=9..0|?{"000$x"-notmatch-join"$x$_"[-3..-1]}|%{"$_"}){$x+=$z[0]}$x

Це спрощений алгоритм від Створення найкоротшого De Bruijn, адаптованого для констант: alphabet = 9876543210and length =3

Вихід:

999899799699599499399299199098898798698598498398298198097897797697597497397297197096896796696596496396296196095895795695595495395295195094894794694594494394294194093893793693593493393293193092892792692592492392292192091891791691591491391291191090890790690590490390290190088878868858848838828818808778768758748738728718708678668658648638628618608578568558548538528518508478468458448438428418408378368358348338328318308278268258248238228218208178168158148138128118108078068058048038028018007776775774773772771770766765764763762761760756755754753752751750746745744743742741740736735734733732731730726725724723722721720716715714713712711710706705704703702701700666566466366266166065565465365265165064564464364264164063563463363263163062562462362262162061561461361261161060560460360260160055545535525515505445435425415405345335325315305245235225215205145135125115105045035025015004443442441440433432431430423422421420413412411410403402401400333233133032232132031231131030230130022212202112102012001110100

Тестовий сценарій:

$f= {

#999..0|%{$s+=if(!($s-match$_)){"$_"}};$s

#999..9|%{$s+=("$_",($x="$_"[-1]))[2*($s-match$_)+($s+$x-match$_)]};$s-replace'1100','100'
#999..9|%{$s+=("$_",($x="$_"[-1]))[2*($s-match$_)+($s+$x-match$_)]};$s
#999..9|%{$s+=(,"$_")[$s-match$_]};$s-replace'(.)\1{3,}','$1$1$1'
#999..9|%{$s+=(,"$_")[$s-match$_]};$s-replace'(.)\1{3,}','$1$1$1'-replace'1100','0'
 for(;$z=9..0|?{"000$x"-notmatch-join"$x$_"[-3..-1]}|%{"$_"}){$x+=$z[0]}$x
#999..9|%{$s+=(,"$_")[$s-match$_]};$s

}

$s=&$f

$s
"Length:"
$s.Length
"count(###)!=1:"
$x=@{}
0..($s.Length-3)|%{$s.Substring($_,3)}|Group|%{
    $x[+$_.Name]=$_.Count
}
100..999|?{$x.$_-ne1}|%{,($_,+$x.$_)}|%{"$_"}
"count(##)!=10:"
$x=@{}
0..($s.Length-2)|%{$s.Substring($_,2)}|Group|%{
    $x[+$_.Name]=$_.Count
}
10..99|?{$x.$_-ne10}|%{,($_,+$x.$_)}|%{"$_"}
"count(#)!=100:"
$x=@{}
0..($s.Length-1)|%{$s.Substring($_,1)}|Group|%{
    $x[+$_.Name]=$_.Count
}
0..9|?{$x.$_-ne100}|%{,($_,+$x.$_)}|%{"$_"}
"All numbers:"
999-eq(1..999|?{$s-match$_}).Count

2

05AB1E , 9 байт і 1109 символів

₄FDNå_iNì

Виходи:

90990190089989088981980980880079979879078978878077977870970870770069969869769068968868768067967867767066966866760960860760660059959859759659058958858758658057957857757657056956856756656055955855755650950850750650550049949849749649549048948848748648548047947847747647547046946846746646546045945845745645545044944844744644540940840740640540440039939839739639539439038938838738638538438037937837737637537437036936836736636536436035935835735635535435034934834734634534434033933833733633533430930830730630530430330029929829729629529429329028928828728628528428328027927827727627527427327026926826726626526426326025925825725625525425325024924824724624524424324023923823723623523423323022922822722622522422320920820720620520420320220019919719619519419319219118918818718618518418318218017917817717617517417317217016916816716616516416316216015915815715615515415315215014914814714614514414314214013913813713613513413313213012912812712612512412312212011811711611511411311211110910810710610510410310210110099919089888079787770696867666059585756555049484746454440393837363534333029282726252423222018171615141312119876543210

Спробуйте в Інтернеті або переконайтеся, що він містить усі цифри нижче 1000 .

Пояснення:

            # Push 1000
 F           # Loop N in the range [0,1000):
  D          #  Duplicate the top value on the stack
   Nå_i      #  If it does not contain N as substring yet:
       Nì    #   Prepend N to it
             # (Output implicitly after the loop)

1

Pyke, 13 байт (неконкурентоспроможний), довжина рядка 1133

Пайк новіший, ніж виклик, і тому є неконкурентоспроможним.

k~mV~oi{!o`*+

Спробуйте тут!

              - o = 0
k~mV          - repeat 1000 times, i = ""
    ~oi{      -     str(o) in i
        !     -    not ^
         o`*  -   str(o++) * ^
            + -  i += ^

Як довго триває вихід?
Kritixi Lithos

1

PHP, 48 44 байт

Дякую @primo за те, що нагадав ereg.

for($i=1e3;--$i;ereg($i,$s)?:$s.=$i);echo$s;

або

for($i=1e3;ereg(--$i,$s)?$i:$s.=$i;);echo$s;

вихід: 1020 символів. вимагає PHP <7

PHP 7, 48 байт:

ereg було видалено в PHP 7

for($i=1e3;--$i;strstr($s,"$i")?:$s.=$i);echo$s;

Якщо другий аргумент strstr(або strposта інші функції пошуку рядків) не є рядком, він буде використовуватися в якості коду ascii, тому $iпотрібен перехід до рядка.


1
ereg($i,$s)для 4 (я б також включив <?до числа байтів).
прим

@primo Я щойно помітив, що ця проблема старіша за PHP 7. подвійне спасибі. :)
Тіт

eregбуло видалено, імовірно, тому, що назва функції занадто коротке та / або не містило достатньої кількості підкреслень. Це splitтеж було вилучено особливо блискуче.
прим

eregбуло видалено, оскільки POSIX містить лише підмножину можливостей PCRE; і вони, мабуть, не хотіли підтримувати дві різні бібліотеки. Я запитаю, чи повинен я колись знову зустрітися з Расмусом Лердорфом. splitбуло видалено, але joinзалишилося (ймовірно, тому, що це "лише" псевдонім). Вибачте за педантизм; але я знаю людей, які не можуть визнати іронію.
Тит

1

Groovy, 49 символів / байт

Я не був впевнений, чи потрібно це робити як функція, що повертає змінну рядка, або роздруковувати результат, тому це просто виводить її в stdout. За допомогою математичного регексера збережено 2 байти, використовуючи потрійний оператор замість "якщо", збережений інший байт. Вихідний рядок - 1133 символів.

a='';1000.times{a+=(a==~/.*$it.*/)?'':it};print a

Вихід:

01234567891011131415161718192021222425262728293032333536373839404344464748495054555758596065666869707677798087889099100102103104105106107108109110112114115116117118119120124125126127128129130132133134135136137138139140142143144145146147148149150152153154155156157158159160162163164165166167168169170172173174175176177178179180182183184185186187188189190193194195196197198199200203204205206207208209219220221223225226227228229230231235236237238239240243244245246247248249250253254255256257258259260263264265266267268269270273274275276277278279280283284285286287288289290294295296297298299300304305306307308309311329330332334336337338339340342346347348349350354355356357358359360364365366367368369370374375376377378379380384385386387388389390395396397398399400405406407408409422439440443445447448449450453457458459460465466467468469470475476477478479480485486487488489490496497498499500506507508509533549550554556558559560564568569570576577578579580586587588589590597598599600607608609644659660665667669670675679680687688689690698699700708709755769770776778780786790797799800809866877879880887888897898899900908932943954965976979987989

-1

Мова виробника ігор, 1014 - String 1000

show_message(909910010110210310410510610710810911121131141151161171181191201221231241251261271281291301321331341351361371381391401421431441451461471481491501521531541551561571581591601621631641651661671681691701721731741751761771781791801821831841851861871881891901921931941951961971981992002022032042052062072082092223224225226227228229230233234235236237238239240243244245246247248249250253254255256257258259260263264265266267268269270273274275276277278279280283284285286287288289290293294295296297298299300303304305306307308309333433533633733833934034434534634734834935035435535635735835936036436536636736836937037437537637737837938038438538638738838939039439539639739839940040440540640740840944454464474484494504554564574584594604654664674684694704754764774784794804854864874884894904954964974984995005055065075085095556557558559560566567568569570576577578579580586587588589590596597598599600606607608609666766866967067767867968068768868969069769869970070770870977787797807887897907987998008088098889890899900)

Також:

Рубі, 1003 - Рядок 1000

p'909910010110210310410510610710810911121131141151161171181191201221231241251261271281291301321331341351361371381391401421431441451461471481491501521531541551561571581591601621631641651661671681691701721731741751761771781791801821831841851861871881891901921931941951961971981992002022032042052062072082092223224225226227228229230233234235236237238239240243244245246247248249250253254255256257258259260263264265266267268269270273274275276277278279280283284285286287288289290293294295296297298299300303304305306307308309333433533633733833934034434534634734834935035435535635735835936036436536636736836937037437537637737837938038438538638738838939039439539639739839940040440540640740840944454464474484494504554564574584594604654664674684694704754764774784794804854864874884894904954964974984995005055065075085095556557558559560566567568569570576577578579580586587588589590596597598599600606607608609666766866967067767867968068768868969069769869970070770870977787797807887897907987998008088098889890899900'


3
1) Ваше перше рішення порушує правило "довжина рядка повинна бути не більше 1500 символів". 2) Я не можу знайти номер 909 у вашому виході. (Ви пропустили першу цифру при вставці копії з відповіді primo ?) 3) rubyКод можна використовувати pзамість putsпередачі йому числового параметра.
манастирська робота
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.