Serialized Integer का पता लगाएं


16

कार्य

एक प्रोग्राम लिखें जो एक सकारात्मक पूर्णांक लेगा (इनपुट के रूप में)। यह तब से गिना जाएगा 0, प्रत्येक पूर्णांक को जोड़कर String, केवल तभी जारी रहेगा जब की लंबाई Stringइनपुट के मान से कम हो।

एक अनुक्रमित पूर्णांक को पूर्ण रूप से निर्मित पूर्णांक के रूप में परिभाषित किया गया है, जिसका अधिकतम मूल्य संबंधित है String। "पूरी तरह से गठित" करके, पूर्णांक में कोई लापता अंक नहीं होना चाहिए (जो तब होता है जब लंबाई की बाधा Stringपूरी होती है)।

कार्यक्रम का आउटपुट अपने संबंधित, सकारात्मक इनपुट के लिए क्रमबद्ध पूर्णांक होना चाहिए ।


नियम

  • यह कोड गोल्फ है, इसलिए सबसे छोटा जवाब (बाइट्स में) जीतता है!
  • इनपुट हमेशा सकारात्मक रहेगा।
  • आउटपुट बेस -10 (दशमलव) में पूर्णांक होना चाहिए।
  • कार्यक्रम 0-अनुक्रमित होना चाहिए।

उदाहरण इनपुट | उत्पादन

   5 | 4   (0 1 2 3 4              - Length of 5)
  11 | 9   (0 1 2 3 4 5 6 7 8 9 1  - Length of 11)
  12 | 10  (0 1 2 3 4 5 6 7 8 9 10 - Length of 12)
1024 | 377 (0 1 2 3 4 5 6 7 8 ...  - Length of 1024)

टिप्पणियाँ)


6
सुझाए गए परीक्षण के मामले:11
रॉड

@Rod ने इसे जोड़ा, उम्मीद है कि इसे समझना आसान हो गया है!
याकूब जी।

उदाहरणों में स्ट्रिंग में उद्धरण चिह्नों को जोड़ने से यह समझना आसान हो सकता है कि यह एक स्ट्रिंग है।
isaacg

तो एक उपजी के साथ चम्पारण्य स्थिरांक के पहले N-1अंक ? 0
Mego

जवाबों:


8

जावास्क्रिप्ट (ईएस 6), 40 37 बाइट्स

f=(n,i=s='0')=>(s+=++i)[n]?i-1:f(n,i)
<input type=number min=1 value=1 oninput=o.textContent=f(this.value)><pre id=o>0

संपादित करें: @Arnauld की कुछ मदद से 3 बाइट्स सहेजे गए।




5

जाप , 13 बाइट्स

1n@P±X l >U}a

इसे ऑनलाइन टेस्ट करें!

व्याख्या

1n@ P± X l >U}a
1nX{P+=X l >U}a
                   Implicit: U = input integer, P = empty string
  X{         }a    Return the first integer X in [0, 1, 2, ...] that returns a truthy value:
    P+=X             Append X to P.
         l >U        Return P.length > U.
                   This returns the first integer that can't fit into the U-char string.
1n                 Subtract 1 from the result.
                   Implicit: output result of last expression




4

जेली ,  11 10  9 बाइट्स

RD;\L€<⁸S

एक सकारात्मक लिंक एक सकारात्मक पूर्णांक और एक गैर-नकारात्मक पूर्णांक लौटाता है।

इसे ऑनलाइन आज़माएं!

कैसे?

संपादन...

RD;\L€<⁸S - link: number n
R         - range -> [1,2,...10,11,...,n-1]
 D        - convert to decimal (vectorises) -> [[1],[2],...,[1,0],[1,1],...D(n-1)]
   \      - cumulative reduce by:
  ;       -   concatenation -> prefixes i.e.: [[1],[1,2],...,[1,2,...,1,0],[1,2,...,1,0,1,1],[1,2,...,1,0,1,1,...Flattened(D(n))]]
    L€    - length of €ach -> [1,2,3,...,11,13,...,length([1,2,...,1,0,1,1,...Flattened(D(n))])]
       ⁸  - chain's left argument, n
      <   - less than? (vectorises)
        S - sum (yields the number of prefixes that are less than or equal in length to n)
          -   Note: `0` is excluded from the range and all the prefixes, but including
          -         it would mean comparing to n+1 AND decrementing at the end (for a
          -         total cost of a byte)

4

मुझे यह पसंद है! तुलना के रूप में स्लाइसिंग का उपयोग करना शानदार है।
इसहाक

@isaacg यह पायथ (ऑन) की अच्छी गोल्फ विशेषताओं में से एक है। मुझे तब विचार आया जब मैंने नील के उत्तर को देखा (स्लाइसिंग के बजाय अनुक्रमण, लेकिन समान विचार)। < num seqबहुत मददगार भी था।
पुरकाकूदरी

3

पर्ल 6 , 36 बाइट्स

{(0...^{([~] 0..$^a).comb>$_})[*-1]}

इसे ऑनलाइन आज़माएं!

  • 0 ...^ {...}संख्याओं का क्रम शून्य से तब तक है जब तक कि ब्रेसिज़ में कोड ब्लॉक सही संख्या से कम न हो जाए। ( ...बिना कैरट के वह पहला नंबर लौटाएगा जिसके लिए ब्लॉक सही लौटा है।)
  • [~] 0 .. $^a0वर्तमान संख्या $^a(कोड ब्लॉक के पैरामीटर) तक की संख्या का संघटन है ।
  • .combसमवर्ती स्ट्रिंग में सभी वर्णों (अंकों) की एक सूची है। एक संख्या के रूप में व्याख्या की जाती है, यह स्ट्रिंग की लंबाई का मूल्यांकन करती है। .charsयहां उपयोग करना अधिक स्वाभाविक होगा, क्योंकि यह सीधे स्ट्रिंग की लंबाई का मूल्यांकन करता है, लेकिन नाम एक वर्ण लंबा है।
  • $_ शीर्ष-स्तरीय फ़ंक्शन का तर्क है।
  • [*-1] उत्पन्न सूची के अंतिम तत्व का चयन करता है।

2

QBIC , 34 बाइट्स

{A=!p$~_lB+A|>:|_xp-1|\B=B+A]p=p+1

व्याख्या

{           DO infinitely
A=!p$       Set A$ to p cast to num
            Note that p starts out as 0.
~      >:   IF the input number is exceeded by
 _l   |     the length of
   B+A      A$ and B$ combined
_xp-1|      THEN QUIT, printing the last int successfully added to B$
            The _X operator quits, (possibly) printing something if followed by a-zA-Z
            _x is slightly different, it prints the expression between the operator _x and |
\B=B+A      ELSE add A$ to B$
]           END IF
p=p+1       Raise p, and rerun


2

जे, 26 बाइट्स

(>i:1:)([:+/\[:>.10^.1+i.)

((>i:1:)([:+/\[:>.10^.1+i.))"0 ] 5 11 12 1024 2000 20000 100000 1000000
4 9 10 377 702 5276 22221 185184




0

जावा 8, 64 बाइट्स

n->{int i=0;for(String t="0";;t+=++i)if(t.length()>n)return~-i;}

या एक ही बाइट-गिनती के साथ मामूली विकल्प:

n->{int i=0;for(String t="";;t+=i++)if(t.length()>n)return i-2;}
n->{int i=-1;for(String t="";;t+=++i)if(t.length()>n)return~-i;}

स्पष्टीकरण:

इसे यहाँ आज़माएँ।

n->{                  // Method with integer as both parameter and return-type
  int i=0;            //  Integer `i`, starting at 0
  for(String t="0";   //  String, starting at "0"
      ;               //  Loop indefinitely
       t+=++i)        //    After every iteration: append the String with `i+1`
                      //    by first increasing `i` by 1 with `++i`
    if(t.length()>n)  //   If the length of the String is larger than the input:
      return~-i;      //    Return `i-1`
                      //  End of loop (implicit / single-line body)
}                     // End of method


0

रूबी, 44 बाइट्स

केविन क्रूज़सेन के जावा जवाब से प्रेरित। -4 बाइट्स जी बी के लिए धन्यवाद।

->n{i,t=0,'';t+="#{i+=1}"while t.size<n;i-1}

(i + = 1; t + = i.to_s) t + = "# {i + = 1}" के समान है, केवल 4 बाइट्स लम्बी
GB

और अगर आप ऐसा करते हैं, तो आपको अब वेरिएबल टी की जरूरत नहीं है, आप n से साइज घटा सकते हैं और फिर 0.
GB

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.