डिजिटल रूट के विपरीत!


19

[अनुरूप जड़] के रूप में भी जाना जाता है

( डिजिटल रूट के विपरीत! );)

किसी संख्या का डिजिटल रूट उसके अंकों का निरंतर योग है जब तक कि वह एक अंक न हो, उदाहरण के लिए, 89456 के डिजिटल रूट की गणना इस तरह की जाती है:

+ ९ + ४ + ५ + ६ = ३२

3 + 2 = 5

89456 का डिजिटल रूट 5 है।

STDIN के माध्यम से इनपुट के रूप में एक अंक दिया जाता है , डिजिटल डिजिट वाले सभी संभावित दो अंकों की संख्या को प्रिंट / वापस करें। यदि आपको इसकी आवश्यकता है, तो यह स्वयं को शामिल कर सकता है, जैसे 05

ये सभी संभावित इनपुट और आउटपुट हैं:

(आपको यह चुनना है कि अंक के लिए अग्रणी शून्य को शामिल करना है या नहीं)

आई / ओ

0 => 0 या 00 या कुछ नहीं

1 => 01 और / या 1, 10, 19, 28, 37, 46, 46, 55, 64, 73, 82, 91 - सुनिश्चित करें कि 1 100 वापस नहीं करता है

2 => 02 और / या 2, 11, 20, 29, 38, 47, 56, 65, 74, 83, 92

3 => 03 और / या 3, 12, 21, 30, 39, 48, 57, 66, 75, 84, 93

4 => 04 और / या 4, 13, 22, 31, 40, 49, 58, 67, 76, 85, 94

5 => 05 और / या 5, 14, 23, 32, 41, 50, 59, 68, 77, 86, 95

6 => 06 और / या 6, 15, 24, 33, 42, 51, 60, 69, 78, 87, 96

7 => 07 और / या 7, 16, 25, 34, 43, 52, 61, 70, 79, 88, 97

8 => 08 और / या 8, 17, 26, 35, 44, 53, 62, 71, 80, 89, 98

9 => 09 और / या 9, 18, 27, 36, 45, 54, 63, 72, 81, 90, 99

कोई मानक कमियां नहीं है , और यह , इसलिए बाइट्स में सबसे कम जवाब जीतता है।

Heeby Jeeby मैन को उनके अद्भुत 46 बाइट मस्तिष्क-फ्लैक जवाब पर बधाई !


1
क्या संख्या स्वयं दो अंकों की संख्या के रूप में गिनी जाती है? (05)?
विनाशकारी नींबू


5
आउटपुट 0 के लिए क्या होना चाहिए? और फिर, इस तरह के मामले में जहां केवल 10 संभव इनपुट हैं, आपकी चुनौती में आउटपुट की आपूर्ति करने के लिए यह बहुत लाभ होगा।
FryAmTheEggman

1
शून्य को हैंडल करने का आपका निर्णय पोस्ट किए गए कई उत्तरों को अमान्य कर देता है। यह विचार करने के लिए होगा कि प्रतिभागियों को पता है कि आपने निर्णय लिया है।
FryAmTheEggman

2
एक डिजिटल रूट के विपरीत एक एनालॉग रूट है?
tuskiomi

जवाबों:



9

जावास्क्रिप्ट (ईएस 6), 27 31 30 बाइट्स

अन्यथा समाधान के 0लिए 0या सरणी के लिए लौटाता है ।

n=>n&&[...1e9+''].map(_=>n+=9)

डेमो


3
किसी भी टिप्पणी के बिना एक अपमान जवाब में सुधार करने के लिए ज्यादा मदद नहीं करता है ...
अरनौल्ड

कुछ के लिए यह स्पष्ट नहीं हो सकता है कि कौन सा हिस्सा वास्तविक कोडगॉल्फेड फ़ंक्शन है, और कौन सा हिस्सा एक प्रदर्शन है। यह एक अच्छा विचार हो सकता है कि फ़ंक्शन को केवल जावास्क्रिप्ट लाइन के ठीक नीचे रखा जाए ।
डेविड मुल्डर

@DavidMulder सुझाव के लिए धन्यवाद। यह वास्तव में जिस तरह से मैं ज्यादातर समय का जवाब देता हूं। अपडेट किया गया।
अरनौलद

अच्छा समाधान! एक पुराना समाधान खींचने के लिए क्षमा करें, लेकिन क्या आप +किसी अन्य बाइट को बचाने के लिए छोड़ सकते हैं ? हालांकि यह स्टड स्ट्रिंग के साथ काम नहीं करेगा जिस तरह से मुझे लगता है।
क्रेग ऐयर

@CraigAyre मुझे यकीन नहीं है कि यह +कहां से आया ... अपडेट किया गया। धन्यवाद!
अरनुलद

8

05AB1E , 13 12 9 बाइट्स

-3 बाइट्स अदनान को धन्यवाद

тL<ʒSOSOQ

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

व्याख्या

тL<ʒSOSOQ   Main link. Argument n
тL<         List from 1 to 100, then decrement to get 0 to 99
   ʒ        Filter
    SOSO    Sum of all chars, twice
        Q   Compare to input

मुझे लगता है कि आप अनंत लूप को बदल सकते हैं SOSO, क्योंकि संख्या 99 से बड़ी नहीं होगी।
अदनान

@ अदनान मत सोचो, मैं तुम्हें विश्वास दिलाता हूं कि वह कर सकता है।
को प्रातः

1
тL<वास्तव में सादे से कम नहीं है 99Ý। ;)
1717

1
@EriktheOutgolfer खैर, मैं शायद वहाँ एक बाइट को बचाने के लिए कड़ी मेहनत करने की कोशिश कर रहा था; डी
कलसवरस

2
मुख्य "लिंक"? कब से 05AB1E के लिंक हैं? यह जेली नहीं है।
एंड्रयू सविनाख

7

हास्केल , 21 बाइट्स

f पूर्णांक लेता है और पूर्णांकों की सूची लौटाता है।

f d=[d,d+9..99^0^0^d]

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

  • अंक के साथ शुरू होता है dऔर हर 9 वें नंबर के साथ सीमा को 99 के एक सीमा तक उत्पन्न करता है, के मुश्किल मामले को छोड़कर0
  • के लिए जल्दी बंद करने के लिए 0, अन्य सभी अंकों के 0^d==1लिए 0और उस शक्ति का उपयोग करता है ==0। इस प्रकार 99^0^0^dदेता है 1के लिए 0लेकिन 99कुछ और के लिए।


7

ब्रेन-फ्लैक , 46 बाइट्स

{((()()()()()){}){(({}[()])<(({}{}[]))>)}}{}{}

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

व्याख्या

यह उत्तर स्टैग ऊंचाई को लूप काउंटर और इंक्रीमेंट के अंतर के रूप में उपयोग करके मेगेटोम के उत्तर से एक विचार का उपयोग करता है । पिछले उत्तरों की तरह इस उत्तर में सभी शून्य को पकड़ने के लिए एक बड़ा बाहरी लूप है। लूप के अंदर हम एक काउंटर के रूप में कार्य करने के लिए 10 धक्का देते हैं, हम फिर एक और नेस्टेड लूप शुरू करते हैं। इस लूप में हम काउंटर को 1 से घटाते हैं

({}[()])

फिर हम शीर्ष दो आइटमों को पॉप करते हैं, जो काउंटर और अंतिम आइटम हैं जिनकी हमने गणना की है। हम डीक्रेप्शन को संतुलित करने के लिए स्टैक की ऊँचाई पर जोड़ते हैं, हम फिर इसे दो बार धक्का देते हैं, एक बार आउटपुट के लिए और एक बार ताकि अगले परिणाम की गणना करने के लिए इसका सेवन किया जा सके। चीजों को दो बार धक्का देने का मतलब है कि हम गलती से एक अतिरिक्त मूल्य को धक्का देते हैं जिसे निष्पादन के अंत में हटा दिया जाना चाहिए।

इसका कारण यह है कि मेगाटॉम का जवाब बमुश्किल धड़कता है, मेगाटॉम का जवाब अपनी स्टैक हाइट पाने के लिए मजबूर है, जबकि अंतिम परिणाम अभी भी स्टैक पर है। इसका मतलब है कि वे [()]कुल मिलाकर एक को कम करने के लिए एक महंगी का उपयोग करने के लिए मजबूर हैं । डुप्लिकेट को लूप के अंत तक ले जाने से मैं प्रोग्राम के बहुत अंत में [()]अतिरिक्त की कीमत पर उपयोग करने से बचने में सक्षम हूं {}। यदि मेगाटॉम को इस रणनीति का उपयोग करना था तो उसका जवाब इस तरह दिखेगा:

{<>((()()()()()){}){((({}[()])<>{}[]))<>}}<>{}

भी 46 बाइट्स।

ब्रेन-फ्लैक , 52 बाइट्स

{((()()()()()){}){({}[()]<(({})((()()())){}{})>)}}{}

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

व्याख्या

मुख्य बाहरी लूप शून्य के इनपुट के लिए एक विशेष मामला बनाता है। यदि शून्य इनपुट है तो हम पूरे लूप, पॉप शून्य पर कूदते हैं और फिर कुछ भी आउटपुट नहीं करते हैं। अन्यथा हम पाश में प्रवेश करते हैं। यहां हम पुराने मानों को रखते हुए, स्टैक के शीर्ष पर 9 जोड़ते हुए प्रत्येक बार 10 बार लूप को धक्का देते हैं। चूँकि 9 डिजिटल रकम बचाते हैं इसलिए हमें इसका अगला मूल्य मिलेगा। एक बार जब लूप की समय सीमा समाप्त हो जाती है, तो हम लूप से बाहर निकलने के लिए उत्पन्न शून्य का उपयोग करते हैं जो तब {}अंत में पॉप होता है ।

ब्रेन-फ्लैक , 56 बाइट्स

{([(((()()())){}{})]){({}()<(({})<(({}{}))>)>)}}{}({}{})

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

व्याख्या

यह संस्करण पिछले एक के समान ही काम करता है, जबकि हम मूल मूल्य को छोड़ने के 10 के बजाय 9 बार लूप करते हैं। ऐसा करने के लिए हमें मेमोरी को थोड़ा संभालकर रखना होगा। इस पद्धति का उपयोग करके हमने जो बाइट्स बचाए हैं वे सभी सफाई में डाल दिए जाते हैं।


46 मूल संख्या को संरक्षित नहीं करता है :(
जो राजा

@JoKing हाँ, यह सिर्फ 2 अंकों के मामले करता है। जो मुझे लगता है कि यह प्रश्न का इरादा है, जिससे मुझे बहुत खुशी मिलती है।
गेहूं जादूगर

अच्छी नौकरी! आपने इनाम अर्जित किया।
फंतासी



5

दे घुमा के ,31 27 बाइट्स

seq $1 9 $(($1?99:0))|xargs

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

पिछला

eval echo {$1..$(($1?99:0))..9}

कैसे आदमी पृष्ठों को खोजने में मदद करता है / बैश करता है /? "{x..y..z}" के बारे में? इसे क्या कहते है?
ओलिवियर दुलक

यह पाया गया: मैन पेज में, खोज [^।] \ _। [^।]:brace expansion: (...) A sequence expression takes the form {x..y[..incr]}, where x and y are either integers or single characters, and incr, an optional increment, is an integer. (...) When the increment is supplied, it is used as the difference between each term. The default increment is 1 or -1 as appropriate.
ओलिवियर दुलैक

5

दिल्लोग एपीएल, 15 बाइट्स

{(×⍵)/+\⍵,109}

कैसे?

⍵,10⍴9- 10 9एस ( ⍵ 9 9 9 9 9 9 9 9 9 9) के साथ समवर्ती इनपुट ।

+\ - संचयी योग।

(×⍵)/ - साइनम समय का विस्तार करें - जहां साइनम 1-9 के लिए 1 और 0 के लिए 1 देता है।

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

दिल्लोग एपीएल, 24 बाइट्स

{⍵/⍨⎕=(⍵≠01+9|⍵-1}⍳100

की आवश्यकता है ⎕IO←0

कैसे?

                      100   0 .. 99
              1+9|⍵-1       digit sum (⍵-1 mod 9 + 1)
        (⍵≠0              edge case for 0
     ⎕=                     equals to the input
 ⍵/⍨                        compress with the range

5

ब्रेन-फ्लैक , 48 बाइट्स

{<>((()()()()()){}){(({}[()])<>[][()]({}))<>}}<>

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

मैं बाद में स्पष्टीकरण जोड़ सकता हूं।


प्रतिभाशाली! मैंने काउंटर बनाने के लिए लंबाई के साथ +9 को संयोजित करने की कोशिश की, लेकिन मैंने इसे दूसरे तरीके से करने के बारे में कभी नहीं सोचा
जो किंग


4

गणितज्ञ, 25 बाइट्स

If[#==0,0,Range[#,99,9]]&

0 के लिए काम करता है


के लिए काम नहीं करता है 0। इसमें वह संख्याएँ शामिल नहीं होंगी जिनके अंक 9. से अधिक संख्या में जुड़ते हैं (जैसे आउटपुट में 9नहीं होगा 99)।
जुंगह्वान मिन

मुझे पता है तुम्हारा क्या मतलब है। क्या आप केवल "मेरे" कोड का निरीक्षण करते हैं? यहाँ कई कोड 0 के लिए काम नहीं करते हैं ...
J42161217

1
वेल्ड, मैं मैथेमेटिका कोड पर ध्यान केंद्रित करता हूं क्योंकि यह वह भाषा है जिसे मैं सबसे अच्छी तरह से जानता हूं। आप या कुछ भी लक्ष्य करने का मतलब नहीं था। अगर ऐसा लगा तो मैं माफी मांगता हूं।
जुंगवान मिन

सभी निश्चित और काम कर रहे हैं
J42161217

क्या? कोई बनाया नहीं?
ओल्डबनी 2800

4

जेली , 12 बाइट्स

⁵²Ḷµ,³%9EµÐf

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

यह काम किस प्रकार करता है

⁵²Ḷµ,³%9EµÐf
⁵             - literal 10
 ²            - square
  R           - lowered range: 0 to 99 inclusive.
   µ     µÐf  - filter based on:
    ,³          - element and input
      %9        - mod 9
        E       - are equal

1
जब मैं एक तर्क के रूप में 1 का उपयोग करता हूं तो यह 100 भी देता है, जो दो अंकों का नहीं है
FantaC

यह 0 और 9 मामलों को विभाजित नहीं करता है।
अर्जन जोहान्सन


4

दरअसल , 18 बाइट्स

╗2╤DR⌠╜-9@%Y⌡░╜;)I

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

स्पष्टीकरण:

╗2╤DR⌠╜-9@%Y⌡░╜;)I
╗                   save input to register 0
 2╤DR               range(1, 100)
     ⌠╜-9@%Y⌡░      elements in range where function returns truthy:
      ╜-              subtract from input
        9@%           mod 9
           Y          is equal to 0
              ╜;)   push a copy of the input on the top and the bottom of the stack
                 I  if input is truthy, return the filtered range, else return the input (special-cases 0)

@FryAmTheEggman फिक्स्ड।
मेगो

4

PHP, 41 बाइट्स

प्रिंट अलग किए गए मानों को रेखांकित करता है

for(;100>$a=&$argn;$a+=$a?9:ERA)echo$a._;

ERAमूल्य के साथ PHP में सबसे छोटा स्थिरांक है 131116। आप इसे उबाऊ विकल्प से बदल सकते हैं 100या कार्यक्रम को समाप्त कर सकते हैंdie

ऑनलाइन संस्करण


4

ब्रेन-फ्लैक , 54 52 बाइट्स

{<>((((()()())){}{})()){({}<(({})<>({}))><>[()])}}<>

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

ब्रेन-फ्लैक के साथ मेरा पहला फ़ॉरेस्ट, और मुझे लगता है कि मैंने बहुत अच्छा किया है। अधिक अनुभव वाले किसी के पास सलाह है?

यह काम किस प्रकार करता है:

{ Don't do anything if input is 0
  <>((((()()())){}{})()) Switch to other stack and add 9 and 10
                         10 is the counter, 9 is to add to the current num
  { While counter
     (
       {} Pop the counter
       <(({})<>({}))> Get a copy of the 9, switch to the other stack and add it to a copy of the top of it. Use <...> to make it return 0
       <>[()] Switch to the other stack and decrement the counter
     ) 
  }
}<> Switch to the stack with the values on it

1
बहुत बढ़िया! ब्रेन-फ्लैक में आपका स्वागत है।
मेगाटॉम


3

PHP, 35

print_r(range($argn,!!$argn*99,9));

सरणी के [$argn, 100)एक चरण के साथ सीमा बनाता है 9और इसे प्रिंट करता है। यदि इनपुट है तो 0यह रेंज [0,0]=> बनाता है array(0)


3

पायथन, 48 51 बाइट्स

3 बाइट्स ने @heatWizard को धन्यवाद दिया

lambda n:[x for x in range(100)if~-n==~-x%9or x==n]

1
~-xइसके बजाय कोशिश करें(x-1)
गेहूं जादूगर

1
अभी भी @ WheatWizard की टिप के साथ, अंतरिक्ष को हटा देंif ~-x%9
फेलिप

अब आप ~-n==~-x%9or x==nएक बाइट बचाने के लिए कर सकते हैं
गेहूं जादूगर


मुझे एक मूर्खतापूर्ण सवाल पूछने की जरूरत है ... मैं इसे चलाना चाहूंगा। मुझे यह कोड कैसे चलाना है? यहाँ कुछ निर्माण हैं, जिनके बारे में मैं सीख रहा हूँ (मुख्यतः ~ ऑपरेटर)
एलन फिशर




2

सी (जीसीसी) , 55 बाइट्स

f()वास्तव में किसी भी तर्क के साथ नहीं बुलाया जाना चाहिए; nसिर्फ वहाँ समारोह एक बाइट को बचाने के लिए बाहर के बजाय है।

f(n){for(scanf("%d",&n);n&&n<100;n+=9)printf("%d ",n);}

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


आप printfलूप हेडर के अंदर रखकर 2 बाइट्स बचा सकते हैं : इसे ऑनलाइन आज़माएं!
DLosc

@ डोस मान लीजिए, लेकिन फिर एक नंबर बहुत देर से शुरू होता है।
गैस्ट्रोपनर

शब्दांकन स्पष्ट हो सकता है, लेकिन सवाल 1 के बजाय 10 (जैसे) 10 पर शुरू करने की अनुमति देता है: "... सभी संभव दो अंकों की संख्या जिसमें डिजिटल रूट होता है। यदि आपको इसकी आवश्यकता है , तो यह [एकल] शामिल हो सकता है। -digit नंबर] खुद, उदाहरण के लिए 05. " दूसरे शब्दों में, आउटपुट में एकल-अंकों की संख्या सहित अनुमति दी जाती है लेकिन आवश्यक नहीं है
DLosc

2

चारकोल , 14 11 बाइट्स

I∧N⁺Iθ×⁹…¹¹

इसे ऑनलाइन आज़माएं! लिंक कोड के वर्बोज़ संस्करण के लिए है। संपादित करें: शून्य इनपुट और 1 बाइट के लिए कुछ भी प्रिंट नहीं करने से 2 बाइट्स को बचाया, 3 एएसटीआई -केवल @ के लिए वेक्टर बाइट्स ऑपरेशन का उपयोग करके । स्पष्टीकरण:

         ¹¹ Literal 11
        …   Range
       ⁹    Literal 9
      ×     Vector multiply
     θ      (First) input
    I       Cast to number
   ⁺        Vector add
  N         Input digit as a number
 ∧          Logical AND
I           Cast to string
            Implicitly print on separate lines


मुझे लगता है कि मुझे सिर्फ एक विकल्प मिला है जो 0 को प्रिंट करता है, यहां
ASCII-only

1

जूलिया ०.६ , 18 बाइट्स

मैं 0मामले को पकड़ने के लिए एक टर्नरी का उपयोग करता हूं , और n:9:99संख्याओं को बनाने के लिए एक सीमा । जूलिया में एक सीमा होती है AbstractVectorऔर Vectorअधिकांश मामलों में संख्याओं के वास्तविक के स्थान पर इसका उपयोग किया जा सकता है , लेकिन यह सिर्फ ऐसे प्रिंट करेगा 1:9:91जो चुनौती को पूरा नहीं करता है, इसलिए मैं [_;]सामग्री को एक में इकट्ठा करने के लिए इसे लपेटता हूं Vector

n->n>0?[n:9:99;]:0

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




1

क्लोजर , 38 बाइट्स

(defn f[n](if(pos? n)(range n 100 9)))

या अनाम फ़ंक्शन के रूप में जो 29 बाइट्स है

(#(if(pos? %)(range % 100 9))n)

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

धन्यवाद @steadybox


1
उत्पादन जब n=9अंतिम क्रमांक याद आ रही है 99इसे ऑनलाइन आज़माएं! इसके अलावा, आप एक बाइट को बीच f[n]और जगह को हटाकर बचा सकते हैं (if(...
स्टेडियोबॉक्स

0

पर्ल 5, 62 बाइट्स

sub x{$f=$_[0];@x=("0$f",$f);push@x,map$f+$_*10,(1..9)if$f;@x}

वहाँ एक छोटा रास्ता होने के लिए बाध्य है


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