それらすべてを支配する一つの環。それらすべてを含む1つの文字列


43

目的:厳密に1000未満のすべての正の整数を含む文字列を出力します。

明白な答えは、それらのすべてを連結することであり、2890文字の文字列を作成します(manatworkに感謝)。この種の簡単な答えを避けるには、文字列の長さは1500文字未満でなければなりません。1200文字の文字列を出力する簡単なJavaコードを次に示します。

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)いますが、循環ラッピングを許可していないため、最初の2文字を繰り返す必要があります。
ピーターテイラー

3
ただし、文字列には1、2、または56を含める必要があり、必ずしも001 002および056ではありません
。– Fabinout

6
数値整数ではないと言ったので、問題を解決することはできません。文字列が1000以下のすべての正の数に対応するために、無限の長さでなければならない
Ramchandra Apte

11
@RamchandraApteそして、無限の長さの文字列でも、ほとんどの数字が欠落しています;-)
ハワード

回答:


19

Golfscript-13バイト、1315出力

991,{`.$2>>},

上記は、最初の桁が番号の最大桁である0〜990の番号を選択します。つまり、ソートされた文字列表現の最後の桁は、文字列自体より辞書的に小さくなります。ロジックは次のとおりです。

3桁の数字abcの場合、aが数字の最大桁でない場合数字はスキップされます。これは、後の2つのケースのいずれかでカバーされるためです。

  1. B <C (例えば 123
    ので、cは最大桁で、数のタクシーはスキップされません。この例では、 312はスキップされず、連結されたときに( 312 313 123を含む次の値 313もスキップされません。

  2. B≥C (例えば 132
    ので、bは最大桁で、数の BCAはスキップされません。この例では、 321はスキップされず、連結されたときに( 321 322 132を含む次の値 322もスキップされません。場合 B = C(例えば 122)、この場合にも当てはまります。値 bcaは、以前のようにスキップされません。また、 aは必ず bより小さいため、 bc <a + 1>もスキップされません。この例では、 221 222に 122が含まれています。

上記のコードは厳密に最後ではなく3桁目をテストするため、0〜99のすべての値が結果に含まれます。ただし、1〜99の値はスキップできます。これは、3桁のシーケンスがすべて存在する場合、1桁と2桁のシーケンスもすべて存在する必要があるためです。

以下からの値991から999は、(によって生成されるように、また、スキップしてもよい909 910919 920、... 989 990)。

1315バイトの出力で、これは1500未満の問題の仕様の下で快適です。

出力:

0123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101110111200201202210211212220221222300301302303310311312313320321322323330331332333400401402403404410411412413414420421422423424430431432433434440441442443444500501502503504505510511512513514515520521522523524525530531532533534535540541542543544545550551552553554555600601602603604605606610611612613614615616620621622623624625626630631632633634635636640641642643644645646650651652653654655656660661662663664665666700701702703704705706707710711712713714715716717720721722723724725726727730731732733734735736737740741742743744745746747750751752753754755756757760761762763764765766767770771772773774775776777800801802803804805806807808810811812813814815816817818820821822823824825826827828830831832833834835836837838840841842843844845846847848850851852853854855856857858860861862863864865866867868870871872873874875876877878880881882883884885886887888900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990

バリエーション#1

14バイト、1233出力

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

3番目ではなく最後の桁を厳密に選択することにより、100未満の不要な値の多くが排除され、結果の文字列が短縮されます。

101120212230313233404142434450515253545560616263646566707172737475767780818283848586878890919293949596979899100101110111200201202210211212220221222300301302303310311312313320321322323330331332333400401402403404410411412413414420421422423424430431432433434440441442443444500501502503504505510511512513514515520521522523524525530531532533534535540541542543544545550551552553554555600601602603604605606610611612613614615616620621622623624625626630631632633634635636640641642643644645646650651652653654655656660661662663664665666700701702703704705706707710711712713714715716717720721722723724725726727730731732733734735736737740741742743744745746747750751752753754755756757760761762763764765766767770771772773774775776777800801802803804805806807808810811812813814815816817818820821822823824825826827828830831832833834835836837838840841842843844845846847848850851852853854855856857858860861862863864865866867868870871872873874875876877878880881882883884885886887888900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990

バリエーション#2

16バイト、1127出力

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

99未満のすべての値を事前に取り除くことにより、結果の文字列をさらに短縮できます。

99100101110111200201202210211212220221222300301302303310311312313320321322323330331332333400401402403404410411412413414420421422423424430431432433434440441442443444500501502503504505510511512513514515520521522523524525530531532533534535540541542543544545550551552553554555600601602603604605606610611612613614615616620621622623624625626630631632633634635636640641642643644645646650651652653654655656660661662663664665666700701702703704705706707710711712713714715716717720721722723724725726727730731732733734735736737740741742743744745746747750751752753754755756757760761762763764765766767770771772773774775776777800801802803804805806807808810811812813814815816817818820821822823824825826827828830831832833834835836837838840841842843844845846847848850851852853854855856857858860861862863864865866867868870871872873874875876877878880881882883884885886887888900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990

Golfscript-19バイト、1016出力

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

上記は99から909までカウントし、まだ現れていない値を追加します(通常、909はこの方法で最後に追加される値です)。99を前面に移動することは、背面に910が必要になるのを避けるための最適化です。

出力:

99100101102103104105106107108109111112113114115116117118119120122123124125126127128129130132133134135136137138139140142143144145146147148149150152153154155156157158159160162163164165166167168169170172173174175176177178179180182183184185186187188189190192193194195196197198199200202203204205206207208209222223224225226227228229230233234235236237238239240243244245246247248249250253254255256257258259260263264265266267268269270273274275276277278279280283284285286287288289290293294295296297298299300303304305306307308309333334335336337338339340344345346347348349350354355356357358359360364365366367368369370374375376377378379380384385386387388389390394395396397398399400404405406407408409444445446447448449450455456457458459460465466467468469470475476477478479480485486487488489490495496497498499500505506507508509555556557558559560566567568569570576577578579580586587588589590596597598599600606607608609666667668669670677678679680687688689690697698699700707708709777778779780788789790798799800808809888889890899900909

Golfscript 26バイト、999出力

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

そのノート1016年以前のソリューションによって生成された文字列は、各複数のための2つの追加の数字を有する以外は、ほぼ最適である111(すなわち、11111代わりに11122222代わりに222、等)。ソリューションは、これらの余分な数字を削除して(これらの値のそれぞれに3桁ではなく1桁のみを挿入)、909前方に回転してaを削除することで最適化できます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

追加する文字を選択するロジックは、次の3つの場合に従います。

  1. 111NNsは
    最初のチェックの値が 1、および秒から -1
    スライスはインデックス 0から始まります。文字列全体を返します。
  2. 111はNNsは
    最初のチェックの値が 1、および第二何かから ≥2
    スライスは、インデックス ≥3から開始します。空の文字列を返します。
  3. 111 | nはnが
    最初のチェックの値が 0、そして第二から -1
    スライスはインデックス -1から始まります。最後の文字のみを返します。

それがの倍数である場合を除き-ロジックの和はまだ現れていない任意の値が全体的に追加されることである111だけの文字が付加される場合には、。他のすべての値は無視されます。

生成される文字列は、Peter Taylorの答えによって生成される最適な文字列とは異なることに注意してください。

歴史:

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文字)これは、Lyndonの単語連結アプローチのバリエーションです。プリミティブな1文字の単語を使用するのではなく、コードの短縮と繰り返しの出現に111の倍数を使用します。共役グループの最小要素を使用するのではなく、最大要素を使用します。ループが短縮されるためです。


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

40文字(おそらく改善可能)で、長さ999文字の最適な文字列を生成します。

100200300400500600700800901101201301401501601701801902102202302402502602702802903103203303403503603703803904104204304404504604704804905105205305405505605705805906106206306406506606706806907107207307407507607707807908108208308408508608708808909109209309409509609709809911121131141151161171181191221231241251261271281291321331341351361371381391421431441451461471481491521531541551561571581591621631641651661671681691721731741751761771781791821831841851861871881891921931941951961971981992223224225226227228229233234235236237238239243244245246247248249253254255256257258259263264265266267268269273274275276277278279283284285286287288289293294295296297298299333433533633733833934434534634734834935435535635735835936436536636736836937437537637737837938438538638738838939439539639739839944454464474484494554564574584594654664674684694754764774784794854864874884894954964974984995556557558559566567568569576577578579586587588589596597598599666766866967767867968768868969769869977787797887897987998889899900

これを逆の文字列にしようとすると、111の倍数を省略すると問題が発生します。

999が最適な長さであることを確認するには(上記の簡単なコメントでは全員を納得させないため)、0から9までの3桁の文字列ごとに含まれるde Bruijnシーケンス全体から始めます(循環文字列として取得)。それらは1000個あり、少なくとも1000文字の長さが必要です。それは正確に1000文字が長い通常ノード2桁の配列であるグラフ上のオイラー徒歩により証明されることができるxy10個のエッジ、一桁で標識された各々とz取るxyyz

0beginのシーケンスは必要ないので、de Bruijnシーケンスが与えられた場合、回転000して最後に置くことができます。次に、先頭に折り返すシーケンスのいずれも必要ありませんが、0前の数字で始まるシーケンスを終了するために2つのs が必要な000ので、それらの1つを削除して999文字の文字列を取得できます。残りのすべて0は、で始まらない数で使用されます0


8
それは本当に印象的です!!
-Fabinout

フィルタリングまたは生成的なアプローチを使用したいと思います。擬似リンドンのアプローチでは、生成的なアプローチを32文字にまで下げ10,:^{:x^>{x.@:&<+^>{x&@}/}/}/0.ました。真のリンドンの単語の10,:^{:x^>{x.@:&<+^>{.x>{x&@}*}/}/}%3>0.場合、最適な文字列に対して(40文字)が得られます。
ピーターテイラー

100未満の数値に先行ゼロを使用しないことで、最適な文字列を短くすることはできますか?
Random832

1
@ Random832あなたにはできないと確信しています。100、200、... 900の数字を含める必要があるため、最小文字列には必ず00Xが8回出現します(上記のように、右端に1回出現する可能性があります)。指定された最適な文字列には「001」が含まれていないことに注意してください。
tttppp

2
通常、私は理解できないコードを支持しませんが、この場合、私は理解できないのでそれを支持しています。ブラボー。
ベンジャクソン

29

GolfScript、17文字

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

文字列にまだ存在しない場合に各番号を追加する単純なアプローチ(注:999はチェックも追加もされませんが、既に出力に含まれています)。

出力は1133文字です。

01234567891011131415161718192021222425262728293032333536373839404344464748495054555758596065666869707677798087889099100102103104105106107108109110112114115116117118119120124125126127128129130132133134135136137138139140142143144145146147148149150152153154155156157158159160162163164165166167168169170172173174175176177178179180182183184185186187188189190193194195196197198199200203204205206207208209219220221223225226227228229230231235236237238239240243244245246247248249250253254255256257258259260263264265266267268269270273274275276277278279280283284285286287288289290294295296297298299300304305306307308309311329330332334336337338339340342346347348349350354355356357358359360364365366367368369370374375376377378379380384385386387388389390395396397398399400405406407408409422439440443445447448449450453457458459460465466467468469470475476477478479480485486487488489490496497498499500506507508509533549550554556558559560564568569570576577578579580586587588589590597598599600607608609644659660665667669670675679680687688689690698699700708709755769770776778780786790797799800809866877879880887888897898899900908932943954965976979987989

20

私はコードを持っていませんが、999文字が出力の長さの下限であるというこの直感的な証拠を誰かが評価するだろうと思いました。

まず、すべての1桁と2桁の数字は3桁の数字の一部です。したがって、100未満のすべてを無視します。100から999までは900の3桁の数字です。

問題を解決するための最も最適な方法は、すべての文字をできるだけ使用することです。これは、次のように、数値が可能な限り重なることを意味します。

123
 234
  345

したがって、最初の番号には3文字が追加され、後続の各番号には1文字が追加されます。これは、下限として3 + 899 = 902文字を与えます。

ただし、ゼロがある場合、それを使用して新しい3桁の数字を開始することはできません。ただし、その後にゼロが続かない限り、別の3桁の数字の途中で再利用できます。

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

しかし:

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

したがって、出力に表示される各ゼロは、出力を1文字拡張します。ただし、最後の2文字は、それ以上の数字と重複しないためゼロになる場合があります。

???
 ??0
  ?00

真ん中に厳密に1つのゼロ(?0?)を持つ81個の数字、最後に厳密に1つのゼロ(?? 0)を持つ81個の数字、および2つのゼロ(?00)を持つ9個の数字があります。

すべての?? 0番号は、?0?番号または?00番号、ただし両方ではありません。?0?また、?00はゼロを共有できないため、出力には少なくとも81 + 9 * 2のゼロが必要です。

これにより、3 + 899 + 81 + 9 * 2-2 = 999文字の下限が与えられます。

これがトピック外であると考えられる場合はおologiesびしますが、コメントに収まるには長すぎました。


1
ヘッドアップをありがとう!これは、999未満のすべての整数を含む文字列の長さが999文字であることはちょっとおかしいです。
-Fabinout

1
en.wikipedia.org/wiki/De_Bruijn_sequenceも参照してください。
リオリ

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

for $ @(1..999){$ _。= $ @ if!/ $ @ /}印刷

for $ i(1..999){$ _。= $ i if!/ $ i /} print

for(1..1e3){$ s。= $ _ if $ s!〜/ $ _ /} print $ s

出力:

12345678910111314151617181920212224252627282930323335363738394043444647484950545557585960656668697076777980878890991001021031041051061071081091101121141151161171181191201241251261271281291301321331341351361371381391401421431441451461471481491501521531541551561571581591601621631641651661671681691701721731741751761771781791801821831841851861871881891901931941951961971981992002032042052062072082092192202212232252262272282292302312352362372382392402432442452462472482492502532542552562572582592602632642652662672682692702732742752762772782792802832842852862872882892902942952962972982993003043053063073083093113293303323343363373383393403423463473483493503543553563573583593603643653663673683693703743753763773783793803843853863873883893903953963973983994004054064074084094224394404434454474484494504534574584594604654664674684694704754764774784794804854864874884894904964974984995005065075085095335495505545565585595605645685695705765775785795805865875885895905975985996006076086096446596606656676696706756796806876886896906986997007087097557697707767787807867907977998008098668778798808878888978988999009089329439549659769799879891000

短い文字列: 38 37 34(1020文字):

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

for($ @ = 1e3; $ @-;){$ _。= $ @ if!/ $ @ /} print

for($ i = 1e3; $ i-;){$ _。= $ i if!/ $ i /} print

出力:

999998997996995994993992991990988987986985984983982981980978977976975974973972971970968967966965964963962961960958957956955954953952951950948947946945944943942941940938937936935934933932931930928927926925924923922921920918917916915914913912911910908907906905904903902901900888887886885884883882881880877876875874873872871870867866865864863862861860857856855854853852851850847846845844843842841840837836835834833832831830827826825824823822821820817816815814813812811810807806805804803802801800777776775774773772771770766765764763762761760756755754753752751750746745744743742741740736735734733732731730726725724723722721720716715714713712711710706705704703702701700666665664663662661660655654653652651650645644643642641640635634633632631630625624623622621620615614613612611610605604603602601600555554553552551550544543542541540534533532531530524523522521520514513512511510504503502501500444443442441440433432431430423422421420413412411410403402401400333332331330322321320312311310302301300222221220211210201200111110101100

複製の開始、特に99999にはまだ満足していません!さらに多くのチェックを行うと、より多くのコードが作成されると思います...

編集:@Peter Taylorからの提案を追加

編集2:@primoからの素晴らしい提案!ありがとうございました


2
1000を1e3として書くのはいいトリックですが、それは無意味だと思います。質問は(。サンプルコードも0..999を処理)それはまでを意味し、999を含むでしょう、「厳密に1000年を下回る」と言う
manatwork

素晴らしい点!そもそも別のループがありましたが、それに応じて修正しました!ありがとう!
ドムヘイスティングス

3
変数にアルファベット以外の文字を使用している場合、スペースを削除できますか?
ピーターテイラー

はい、できます!ありがとう!
ドムヘイスティングス

2
いくつかのマイナーな改善:の代わりに$_.=$@if!/$@/、文字列の繰り返しを使用できます$_.=$@x!/$@/for置き換えることができwhileモジュロを使用して、文修飾子として:...while$@=--$@%1e3
プリモ

10

APL(20、出力:1020)

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

説明:

  • {∨/⍺⍷⍵:⍵⋄⍵,⍺}:if がsubstringの場合、return 、それ以外の場合は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つだけの1場合、そうでない場合0
  • :前の2つの値の最大公約数、そう:1場合にはなっていないとだけ、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メソッドは(1,200ではなく)1048文字の文字列を出力します。
-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

Mathematica(62 64文字、1002出力)

これはネイティブ関数を使用するため、ゼロからの短いソリューションの美しさをさらに感謝しています。出力は1002文字です。

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

"799798787770760750740730720710980970960950940930920910108908708608508408308208889998988081009909008007006005004003002000190180170160150140130120119118117116115114113112912812712612512412312213913813713613513413313214914814714614514414314215915815715615515415315216916816716616516416316217917817717617517417317218918818718618518418318219919819719619519419319212111029028027026025024023022922822722622522422392382372362352342332492482472462452442432592582572562552542532692682672662652642632792782772762752742732892882872862852842832992982972962952942932322202103903803703603503403393383373363353349348347346345344359358357356355354369368367366365364379378377376375374389388387386385384399398397396395394343330320310490480470460450449448447446445945845745645546946846746646547947847747647548948848748648549949849749649545444043042041059058057056055955855755695685675665795785775765895885875865995985975965655505405305205106906806706696686679678677689688687699698697676660650640630620610790780779778978879"

1
799と997が欠落しているように見えます。ideone.com / d07bG2を参照してください(または独自の小切手を書いてください)
ジャスティン

良いキャッチ。デフォルトでDeBruijnSequenceは、循環ラッピングを想定しています。最後の2桁の「79」を前に付けると、問題が解決します。
DavidC

4

Mathematica、51文字

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

出力(1155文字):

000100101110111200201202210211212220221222300301302303310311312313320321322323330331332333400401402403404410411412413414420421422423424430431432433434440441442443444500501502503504505510511512513514515520521522523524525530531532533534535540541542543544545550551552553554555600601602603604605606610611612613614615616620621622623624625626630631632633634635636640641642643644645646650651652653654655656660661662663664665666700701702703704705706707710711712713714715716717720721722723724725726727730731732733734735736737740741742743744745746747750751752753754755756757760761762763764765766767770771772773774775776777800801802803804805806807808810811812813814815816817818820821822823824825826827828830831832833834835836837838840841842843844845846847848850851852853854855856857858860861862863864865866867868870871872873874875876877878880881882883884885886887888900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999

それは何をするためのものか?
-Fabinout

1
これは、フォームのリストのリスト構築0~9からであるが、よりも小さいです。次に、リストを文字列に変換します。{i, j, k}ijki
-alephalpha

4

Python-53 63、1134出力

これはかなり強引な強引ですが、有効です。はい、先頭にゼロがありますが、を持たないことで2文字を節約しrange(1,1000)ます。

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

上記DeprecationWarningは、range()呼び出しで1e3の使用をオーバースローしますが、1000を使用してオーバーキャラクタを保存します。

文字列を逆にすることにより、わずかに最適な長さの出力バージョンもあります。 65文字(resとfilmorに感謝します)

Python-58、1021出力

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

1
、あなたはにコードを短縮することができます(Pythonの3ではなく)私、あなたの最初のプログラムは、Python 2では、出力長さ1133、いない1132を持っていることを見つける54のバッククォートを使用して文字:for i in range(999):s+=`i`*(not`i`in s)
resは

え?彼らはバックティックを取り出しましたか?Guidoは、何を保持するかを決定するときに、I Hate Perlとそのように見えるすべてのものを持っているに違いありません。
ウォーレンP

1
range(999,99,-1)代わりにを使用して、1文字短くすることができrange(1000)[::-1]ます。
撮影者

そして、解像度によるヒントstr(i)*(str(i)not in s)はまだ役立ちi=str(i);s+=[i,''][i in s]ます;)
filmor

@filmor小さくして、1e3代わりに使用して再び小さく1000

2

K、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

いくつかの文字を追加することにより、文字列の長さ(Peter Taylorによると、後で999が最適であると述べた)に到達できます(147 118で+20文字)。

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

編集:Java 6は28文字を節約できることを指摘してくれたFabinoutに感謝します。


必要に応じて、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と述語3)使用のpointfreeバージョン(!!0)超えるhead4)の組み合わせの上の使用のリスト-理解mapfilter5)(<$>)以上を使用し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 = 9876543210および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

Pykeはチャレンジよりも新しいため、競争力がありません。

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その他の文字列検索関数)への2番目の引数が文字列でない場合、ASCIIコードとして使用されるため$i、文字列へのキャストが必要です。


1
ereg($i,$s)4(<?バイトカウントにも含める)。
プリモ

@primoこのチャレンジはPHP 7よりも古いことに気付きました。:)
タイタス

eregおそらく、関数名が短すぎるため、および/または十分なアンダースコアが含まれていなかったため、削除されました。それsplitも削除されたが、特に素晴らしいです。
プリモ

eregPOSIXにはPCREの可能性のサブセットのみが含まれるため、削除されました。彼らはおそらく2つの異なるライブラリを維持したくなかったでしょう。ラスマス・ラードルフにまた会えるかどうか尋ねます。split削除されましたが、join残りました(おそらく「唯一」のエイリアスであるため)。物足りないでごめんなさい。しかし、皮肉を認識できない人は知っています。
タイタス

1

Groovy、49文字/バイト

文字列変数を返す関数としてこれを実行するか、結果を出力するかどうかはわかりませんでしたので、これは単に標準出力に出力します。正規表現マッチャーを使用すると2バイト節約され、「if」の代わりに三項演算子を使用すると別のバイトが節約されました。出力文字列は1133文字です。

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

出力:

01234567891011131415161718192021222425262728293032333536373839404344464748495054555758596065666869707677798087889099100102103104105106107108109110112114115116117118119120124125126127128129130132133134135136137138139140142143144145146147148149150152153154155156157158159160162163164165166167168169170172173174175176177178179180182183184185186187188189190193194195196197198199200203204205206207208209219220221223225226227228229230231235236237238239240243244245246247248249250253254255256257258259260263264265266267268269270273274275276277278279280283284285286287288289290294295296297298299300304305306307308309311329330332334336337338339340342346347348349350354355356357358359360364365366367368369370374375376377378379380384385386387388389390395396397398399400405406407408409422439440443445447448449450453457458459460465466467468469470475476477478479480485486487488489490496497498499500506507508509533549550554556558559560564568569570576577578579580586587588589590597598599600607608609644659660665667669670675679680687688689690698699700708709755769770776778780786790797799800809866877879880887888897898899900908932943954965976979987989

-1

ゲームメーカー言語、1014-文字列1000

show_message(909910010110210310410510610710810911121131141151161171181191201221231241251261271281291301321331341351361371381391401421431441451461471481491501521531541551561571581591601621631641651661671681691701721731741751761771781791801821831841851861871881891901921931941951961971981992002022032042052062072082092223224225226227228229230233234235236237238239240243244245246247248249250253254255256257258259260263264265266267268269270273274275276277278279280283284285286287288289290293294295296297298299300303304305306307308309333433533633733833934034434534634734834935035435535635735835936036436536636736836937037437537637737837938038438538638738838939039439539639739839940040440540640740840944454464474484494504554564574584594604654664674684694704754764774784794804854864874884894904954964974984995005055065075085095556557558559560566567568569570576577578579580586587588589590596597598599600606607608609666766866967067767867968068768868969069769869970070770870977787797807887897907987998008088098889890899900)

また:

ルビー、1003-ストリング1000

p'909910010110210310410510610710810911121131141151161171181191201221231241251261271281291301321331341351361371381391401421431441451461471481491501521531541551561571581591601621631641651661671681691701721731741751761771781791801821831841851861871881891901921931941951961971981992002022032042052062072082092223224225226227228229230233234235236237238239240243244245246247248249250253254255256257258259260263264265266267268269270273274275276277278279280283284285286287288289290293294295296297298299300303304305306307308309333433533633733833934034434534634734834935035435535635735835936036436536636736836937037437537637737837938038438538638738838939039439539639739839940040440540640740840944454464474484494504554564574584594604654664674684694704754764774784794804854864874884894904954964974984995005055065075085095556557558559560566567568569570576577578579580586587588589590596597598599600606607608609666766866967067767867968068768868969069769869970070770870977787797807887897907987998008088098889890899900'


3
1)最初の解決策は、「文字列の長さは1500文字未満でなければなりません」という規則に違反しています。2)出力に909が見つかりません。(primoの回答からコピー&ペーストするときに最初の数字を見逃しましたか?)3)rubyコードは、数値パラメーターpputs渡す代わりに使用できます。
マナトワーク14
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.