एक नंबर त्रिभुज!


28

हम शब्द "बराबरी" करने के लिए उपयोग किया जाता है n की गणना मतलब करने के लिए एन 2 । हम यह भी शब्द "cubing" करने के लिए उपयोग किया जाता है n मतलब करने के लिए एन 3 । कहा जा रहा है, हम भी एक संख्या को त्रिकोण क्यों नहीं बना सकते?

एक संख्या को त्रिकोण कैसे करें?

  • सबसे पहले,, के एक नंबर चुनने देती हैं 53716

  • इसे एक समांतर चतुर्भुज में रखें, जिसकी पार्श्व लंबाई संख्या के अंकों की संख्या के बराबर है, और दो पक्षों को तिरछे तैनात किया गया है, जैसा कि नीचे दिखाया गया है।

        53716
       53716
      53716
     53716
    53716
    
  • अब, हम इसे सही करना चाहते हैं? ऐसा करने के लिए, उन पक्षों को काटें जो एक समकोण त्रिभुज में फिट नहीं होते हैं:

        5
       53
      537
     5371
    53716
    
  • इस उदाहरण के लिए, प्रत्येक पंक्ति का योग लें [5, 8, 15, 16, 22]:

        5 -> 5
       ५३ ->>
      537 -> 15
     5371 -> 16
    53716 -> 22
    
  • सूची में योग करें [5, 8, 15, 16, 22], जिसके परिणामस्वरूप 66। यह इस संख्या का त्रिकोण है!

चश्मा और नियम

अधिक परीक्षण मामले

इनपुट -> आउटपुट

० -> ०
1 -> 1
12 -> 4
123 -> 10
999 -> 54 
100000 -> 6
654321 -> 91

प्रेरणा स्त्रोत। स्पष्टीकरण को प्रोत्साहित किया जाता है!


क्या आपको यकीन है 645321 -> 91?
रॉड

@Rod क्षमा करें, आप सही हैं। मैंने 645321इसके बजाय लिखा था 654321
श्री Xcoder

1
क्या मैं इनपुट को अंकों की सूची के रूप में ले सकता हूं?
20

@totallyhuman हाँ, दूसरी युक्ति देखें।
श्री Xcoder

1
दिलचस्प चुनौती। खुशी है कि तुम मेरे से प्रेरित थे!
ग्रिफन -

जवाबों:




12

ब्रेन-फ्लैक , 65, 50, 36 बाइट्स

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

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

बहुत सारे संशोधन के बाद, मुझे अब इस उत्तर पर बहुत गर्व है। मुझे एल्गोरिथ्म पसंद है, और मस्तिष्क-फलक में इसे कितनी अच्छी तरह से व्यक्त किया जा सकता है।

अधिकांश बाइट गिनती इनपुट में 0 से निपटने से आती है। वास्तव में, यदि हम मान सकते हैं कि इनपुट में कोई 0 नहीं थे, तो यह 20-बाइट का एक छोटा सा जवाब होगा:

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

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

लेकिन दुर्भाग्य से, एज-केस के खराब संचालन के लिए ब्रेन-फ्लैक कुख्यात है।

व्याख्या

सबसे पहले, मेरा अवलोकन:

यदि इनपुट n अंक लंबा है, तो पहला अंक त्रिकोण n समय में दिखाई देगा , दूसरा अंक n-1 बार दिखाई देगा , और इसी तरह अंतिम अंक पर, जो एक बार दिखाई देगा। हम इसका लाभ उठा सकते हैं, क्योंकि यह गणना करना वास्तव में आसान है कि इनपुट के कितने अंक ब्रेन-फ्लैक में बचे हैं

[]

तो यहाँ कोड कैसे काम करता है।

# Push the size of the input (to account for 0's)
([])

# Push...
(

    # While True
    {

        # Pop the stack height (evaluates to 0)
        <{}>

        # For each digit *D*...

        # While true
        {

            # Decrement the counter (the current digit we're evaluating), 
            # but evaluate to 0
            <({}[()])>

            # Evaluate the number of digits left in the input
            []

        # Endwhile
        }

        # This whole block evaluates to D * len(remaining_digits), but 
        # without affecting the stack

        # Since we looped D times, D is now 0 and there is one less digit.
        # Pop D (now 0)
        {}

        # Push the stack height (again, evaluating it as 0)
        <([])>

    # End while
    }

    # Pop a 0 off (handles edge case of 0)
    {}

# end push
)





8

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

अंकों की सूची के रूप में इनपुट लेता है

f[]=0
f x=sum x+f(init x)

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

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

स्ट्रिंग प्रतिनिधित्व के रूप में इनपुट लेता है

f[]=0
f x=sum(map(read.(:[]))x)+f(init x)

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


7

जाप , 7 6 4 बाइट्स

å+ x

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

व्याख्या

å+ x    Implicit: input = digit list
å+      Cumulative reduce by addition. Gives the sum of each prefix.
   x    Sum.

पुराना समाधान:

å+ ¬¬x

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

व्याख्या

å+ ¬¬x   Implicit: input = string
å+       Cumulative reduce by concatenation. Gives the list of prefixes.
   ¬     Join into a single string of digits.
    ¬    Split back into digits.
     x   Sum.
         Implicit: output result of last expression

उह सैंडबॉक्स ज्यादा? या आपने प्रश्न पढ़ा, कोड लिखा और एक मिनट के भीतर यह सब पोस्ट कर दिया ?!
जोनाथन एलन

@JonathanAllan यह सैंडबॉक्स नहीं किया गया था। यह बहुत आसान है जितना आप सोच सकते हैं।
श्री एक्सकोडर

1
उह, अच्छी तरह से मैं भी समय में सवाल पढ़ा
जोनाथन एलन

@JonathanAllan कोई सैंडबॉक्स रीडिंग नहीं, बस इसे पोस्ट करने के तुरंत बाद प्रश्न को पकड़ने के लिए हुआ और लगभग तुरंत एक एल्गोरिथ्म के साथ आया।
ETHproductions

वेल्ड यह सवाल पढ़ने के लिए मुझे ~ 4 मिनट लग गया, इसलिए स्पीड-रीडिंग / गति-समझ :) के लिए +1 :)
जोनाथन एलन

7

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

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

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

14 बाइट्स अगर हमें शून्य का समर्थन करने की आवश्यकता नहीं है (जो हम करते हैं)

({({}<>{})<>})

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

DJMcMayhem का एक अच्छा जवाब है यहां आपको जांच करनी चाहिए। दुर्भाग्य से उसके लिए मैं उसे अपनी भाषा में जीतने नहीं देने वाला था: पी

यह कैसे काम करता है?

सरल संस्करण के साथ शुरू करते हैं।

({({}<>{})<>})

यहां मुख्य क्रिया है ({}<>{})<>, जो बाएं स्टैक के शीर्ष पर ले जाती है और दाएं स्टैक के शीर्ष पर जुड़ जाती है। इस ऑपरेशन को लूप करके हम वर्तमान स्टैक को जोड़ते हैं (जब तक कि यह एक शून्य को हिट नहीं करता है) ऑफ स्टैक पर राशि रखता है। यह सुंदर सांसारिक है, दिलचस्प बात यह है कि हम इन सभी परिणामों के परिणामों को अपने परिणाम के रूप में जोड़ते हैं। यह वांछित मूल्य की गणना करेगा। क्यूं कर? खैर, एक उदाहरण पर एक नज़र ले सकते हैं 123। पहली हड़पने पर हमें सिर्फ 1 मिलता है इसलिए हमारा मान 1 है

1

अगले हड़पने पर हम 1 प्लस 2 वापस करते हैं

1
1+2

आखिरी रन पर हम तीनों एक साथ हैं

1
1+2
1+2+3

क्या आपको त्रिकोण दिखाई देता है? सभी रनों का योग सूची का "त्रिकोण" है।


ठीक है, लेकिन अब हमें शून्य के लिए काम करने की आवश्यकता है, यहां मैंने डीजेएमकेमहेम के समान चाल का इस्तेमाल किया, साथ ही कुछ फैंसी फुटवर्क भी। जब तक हम एक शून्य हिट नहीं करते, तब तक लूपिंग के बजाय स्टैक खाली होता है।

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

मैंने तब इस टिप का उपयोग किया , जो कि आपके अलावा और किसी ने नहीं लिखा था, एक और 2 बाइट को गोल्फ के लिए।

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

एंड देयर वी हैव इट। मुझे आश्चर्य होगा कि अगर कोई छोटा समाधान होता, लेकिन फिर से अजनबी चीजें हुईं।


Unfortunately for him I wasn't about to let him win at his own language :Pमुझे आपसे कुछ भी कम नहीं होने की उम्मीद है। : डी
DJMcMayhem

6

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

a=>a.map(d=>t+=c+=d,t=c=0)|t

अंकों की सूची के रूप में इनपुट लेता है।


5

पायथन 3 , 37 बाइट्स

f=lambda n:len(n)and sum(n)+f(n[:-1])

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


5
... क्यों डाउनवोट?
बिजनेस कैट

मुझे लगता है कि आप को बदल सकता है lenके लिए sumके रूप में अच्छी तरह से है, हालांकि मैं नहीं मानता कि कुछ भी मदद करता है।
ETHproductions

@ETHproductions हाँ। मैं उम्मीद कर रहा था कि मैं इस तथ्य का उपयोग कर सकता हूं कि sum([])0 है, लेकिन कुछ भी एक साथ नहीं आ रहा था ... एक रास्ता हो सकता है
बिजनेस कैट

यह नहीं देखा, अन्यथा मैं तुम्हें मेरा सुधार दिया होता।
जोनाथन एलन

@ जोनाथनअलन कोई चिंता नहीं: पी
बिजनेस कैट

5

सी # (.NET कोर) , 59 बाइट्स

using System.Linq;N=>N.Reverse().Select((d,i)=>i*d+d).Sum()

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

अन्य C # उत्तरों से काफी भिन्न है। इनपुट अंकों की एक सूची है। सभी परीक्षण मामले TIO लिंक में शामिल हैं।

0 से अग्रणी अंकों की एक पीछे की सूची के रूप में इनपुट लेने की अनुमति दी गई तो बाइट्स का एक गुच्छा बचा सकता है।


अछा सुझाव! सी # में कुछ भयंकर कोडगॉल्फिंग।
ग्रेजगोरज पुलावस्की

अच्छा समाधान! लेकिन क्या इनपुट एक गैर-नकारात्मक होने के लिए निर्दिष्ट है number, अंकों की सूची नहीं है?
इयान एच।

@IanH। नियम 2: आप किसी भी अनुमति के माध्यम से इनपुट ले सकते हैं और आउटपुट प्रदान कर सकते हैं। जब यह प्रारूप की बात आती है, तो आप इनपुट को पूर्णांक के रूप में ले सकते हैं, पूर्णांक के स्ट्रिंग प्रतिनिधित्व के रूप में या अंकों की सूची के रूप में।
कामिल दकरी

5

पायथन 3 , 35 बाइट्स

मैंने अभी देखा कि यह वास्तव में बिजनेस कैट के जवाब में वास्तव में एक मामूली गोल्फ है !

f=lambda a:a>[]and sum(a)+f(a[:-1])

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


मजेदार है कि मैं एक समान के साथ समाप्त हो गया है कि यह केवल स्ट्रिंग लेता है और लंबे समय तक है ..: डी
आधिकारिक

4

जे , 7 बाइट्स

[:+/+/\

इसे ऑनलाइन आज़माएं! अंकों की एक सूची लेता है, जैसे कि f 6 5 4 3 2 1

व्याख्या

[:+/+/\    (for explanation, input = 6 5 4 3 2 1)
      \    over the prefixes of the input:
     /         reduce:
    +              addition (summation)
           this gives is the cumulative sum of the input:  6 11 15 18 20 21
[:         apply to the result:
  +/           summation
           this gives the desired result:   90

मूल समस्या के लिए थोड़ा और सही होगा [:+/@,]/, जो कि "सम" ( +/) ,इनपुट के चपटा ( ) उपसर्ग हैं ( ]\)।


4

विम , 60 59 32 कीस्ट्रोक्स

पुनरावर्ती मैक्रो और hचाल के साथ टिप के लिए बहुत बहुत धन्यवाद @ CowsQuack , इसने मुझे 27 बाइट्स बचाए!

qqYp$xh@qq@qVHJ:s/./&+/g⏎
C<C-r>=<C-r>"0⏎

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

Ungolfed / समझाया

यह वर्णित त्रिभुज का निर्माण करेगा (केवल यह कि यह इसे बाएं-संरेखित रखता है):

qq       q    " record the macro q:
  Yp          "   duplicate the line
    $x        "   remove last character
      h       "   move to the left (this is solely that the recursive macro calls stop)
       @q     "   run the macro recursively
          @q  " run the macro

बफर अब इस तरह दिखता है:

53716
5371
537
53
5

सभी लाइनों को एक में मिलाएं और इससे एक मूल्यांकन योग्य अभिव्यक्ति का निर्माण करें:

VH             " mark everything
  J            " join into one line
   :s/./&+/g⏎  " insert a + between all the characters

"रजिस्टर अब निम्नलिखित स्ट्रिंग (नोट लापता 0) शामिल हैं:

5+3+7+1+6+ +5+3+7+1+ +5+3+7+ +5+3+ +5+ +

तो हम सभी को एक शून्य से जोड़ने और इसका मूल्यांकन करने की आवश्यकता है:

 C                " delete line and store in " register
  <C-r>=       ⏎  " insert the evaluated expression from
        <C-r>"    " register "
              0   " append the missing 0

अंदर


आप स्थानापन्न आदेश के &बजाय (पूरे मैच) का उपयोग कर सकते हैं\1
कृति लिथोस

1
qqYp$xq:exe"norm".col('.')."@q"⏎बन सकता है qqYp$xh@qq@q। यह पुनरावर्ती मैक्रो लाइन पर एक वर्ण होने पर एक ब्रेकिंग त्रुटि का सामना करेगा, जिसके बाद यह बंद हो जाएगा।
कृति लिथोस

तो प्रतिस्थापन बस बन सकता है :s/./&+/g। भी :%j⏎बन सकता है V{J। और, Diबन सकता है C(मैंने पहले से ही आपके विम उत्तर में इस बारे में टिप्पणी की है)। इसे ऑनलाइन आज़माएं!
कृति लिथोस


3

बैश + जीएनयू उपयोगिताओं, 32 24

tac|nl -s*|paste -sd+|bc

इनपुट STDIN से पढ़ा जाता है।

अद्यतन: मुझे लगता है कि इनपुट को अंकों की सूची के रूप में दिया जा सकता है। मेरी इनपुट सूची न्यूलाइन-सीमांकित है।

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

व्याख्या

tac                       # reverse digit list
   |nl -s*                # prefix line numbers; separate with "*" operator
          |paste -sd+     # join lines onto one line, separated with "+" operator
                     |bc  # arithmetically evaluate

3

एपीएल, 4 बाइट्स

+/+\

यह इनपुट को अंकों की सूची के रूप में लेता है, जैसे:

      (+/+\) 5 3 7 1 6
66

व्याख्या

+/    sum of
  +\  partial sums of input

3

टैक्सी , 1478 बाइट्स

Go to Post Office:w 1 l 1 r 1 l.Pickup a passenger going to Chop Suey.Go to Chop Suey:n 1 r 1 l 4 r 1 l.[a]Switch to plan "b" if no one is waiting.Pickup a passenger going to The Babelfishery.Go to Zoom Zoom:n 1 l 3 r.1 is waiting at Starchild Numerology.Go to Starchild Numerology:w 4 l 2 r.Pickup a passenger going to Addition Alley.Go to Addition Alley:w 1 r 3 r 1 r 1 r.Pickup a passenger going to Addition Alley.Go to The Babelfishery:n 1 r 1 r.Go to Chop Suey:n 6 r 1 l.Switch to plan "a".[b]Go to Addition Alley:n 1 l 2 l.Pickup a passenger going to Cyclone.[c]Go to Zoom Zoom:n 1 l 1 r.Go to Cyclone:w.Pickup a passenger going to The Underground.Pickup a passenger going to Multiplication Station.Go to The Babelfishery:s 1 l 2 r 1 r.Pickup a passenger going to Multiplication Station.Go to Multiplication Station:n 1 r 2 l.Pickup a passenger going to Addition Alley.Go to The Underground:n 2 l 1 r.Switch to plan "d" if no one is waiting.Pickup a passenger going to Cyclone.Go to Addition Alley:n 3 l 1 l.Switch to plan "c".[d]Go to Addition Alley:n 3 l 1 l.[e]Pickup a passenger going to Addition Alley.Go to Zoom Zoom:n 1 l 1 r.Go to Addition Alley:w 1 l 1 r.Pickup a passenger going to Addition Alley.Switch to plan "f" if no one is waiting.Switch to plan "e".[f]Go to Zoom Zoom:n 1 l 1 r.Go to Addition Alley:w 1 l 1 r.Pickup a passenger going to The Babelfishery.Go to The Babelfishery:n 1 r 1 r.Pickup a passenger going to Post Office.Go to Post Office:n 1 l 1 r.

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

संयुक्त राष्ट्र के golfed:

[ Pickup stdin and split into digits ]
Go to Post Office: west 1st left 1st right 1st left.
Pickup a passenger going to Chop Suey.
Go to Chop Suey: north 1st right 1st left 4th right 1st left.
[a]
[ Count the digits ]
Switch to plan "b" if no one is waiting.
Pickup a passenger going to The Babelfishery.
Go to Zoom Zoom: north 1st left 3rd right.
1 is waiting at Starchild Numerology.
Go to Starchild Numerology: west 4th left 2nd right.
Pickup a passenger going to Addition Alley.
Go to Addition Alley: west 1st right 3rd right 1st right 1st right.
Pickup a passenger going to Addition Alley.
Go to The Babelfishery: north 1st right 1st right.
Go to Chop Suey: north 6th right 1st left.
Switch to plan "a".
[b]
Go to Addition Alley: north 1st left 2nd left.
Pickup a passenger going to Cyclone.
[c]
[ Multiply each digits by Len(stdin)-Position(digit) ]
Go to Zoom Zoom: north 1st left 1st right.
Go to Cyclone: west.
Pickup a passenger going to The Underground.
Pickup a passenger going to Multiplication Station.
Go to The Babelfishery: south 1st left 2nd right 1st right.
Pickup a passenger going to Multiplication Station.
Go to Multiplication Station: north 1st right 2nd left.
Pickup a passenger going to Addition Alley.
Go to The Underground: north 2nd left 1st right.
Switch to plan "d" if no one is waiting.
Pickup a passenger going to Cyclone.
Go to Addition Alley: north 3rd left 1st left.
Switch to plan "c".
[d]
Go to Addition Alley: north 3rd left 1st left.
[e]
[ Sum all the products ]
Pickup a passenger going to Addition Alley.
Go to Zoom Zoom: north 1st left 1st right.
Go to Addition Alley: west 1st left 1st right.
Pickup a passenger going to Addition Alley.
Switch to plan "f" if no one is waiting.
Switch to plan "e".
[f]
[ Output the results ]
Go to Zoom Zoom: north 1st left 1st right.
Go to Addition Alley: west 1st left 1st right.
Pickup a passenger going to The Babelfishery.
Go to The Babelfishery: north 1st right 1st right.
Pickup a passenger going to Post Office.
Go to Post Office: north 1st left 1st right.

3

पर्ल 5 , 19 + 1 ( -p) = 20 बाइट्स

s/./$\+=$p+=$&/ge}{

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

कैसे?

$ \, संचयी कुल रखती है, $ p वर्तमान रेखा पर कुल अंकों को रखती है। समांतर चतुर्भुज की प्रत्येक पंक्ति पिछली संख्या के साथ केवल पिछली पंक्ति होती है, जिसे जोड़ दिया जाता है। इसलिए, यह पिछली पंक्ति और नए अंक का योग है। यह सभी अंकों से अधिक होता है, जो जाते समय योगों की गणना करता है। वास्तविक प्रतिस्थापन अप्रासंगिक है; यह वास्तविक लूप बनाने के बिना अंकों पर पुनरावृति करने का एक साधन है। अंत में, -pविकल्प द्वारा $ \ _ को स्पष्ट रूप से मुद्रित किया जाता है।



2

जेली ,  5  4 बाइट्स

Ṛæ.J

दशमलव अंकों की एक सूची लेने और जिस संख्या का प्रतिनिधित्व करता है, उसके त्रिकोण को लौटाने के लिए एक विवादास्पद लिंक।

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

कैसे?

Ṛæ.J - Link: list of numbers (the decimal digits), d   e.g. [9,4,5,0]
Ṛ    - reverse d                                            [0,5,4,9]
   J - range(length(d))                                     [1,2,3,4]
 æ.  - dot-product            (0*1 + 5*2 + 4*3 + 9*4 = 58)  58

मैंने सोचा था कि हटाने से भी काम चल जाएगा। अफ़सोस ...
ETHproductions

@ETHproductions ... और फिर भी एक अंतर्निहित मदद करने के लिए है!
जोनाथन एलन

... ठीक है, वाह ...
ETHproductions

@ETHproductions ooops को इसे उलटना पड़ा> _ <
जोनाथन एलन

2

रेटिना , 13 बाइट्स

.
$`$&
.
$*
1

इसे ऑनलाइन आज़माएं! लिंक में परीक्षण मामले शामिल हैं। स्पष्टीकरण: पहला चरण मूल संख्या के सभी उपसर्गों को उत्पन्न करता है, दूसरा चरण प्रत्येक अंक को एकात्मक में परिवर्तित करता है, और तीसरा चरण कुल लेता है।


2

मैथेमेटिका, 49 बाइट्स

Tr@Array[Tr@s[[;;#]]&,Length[s=IntegerDigits@#]]&

आप इनपुट को अंकों की सूची के रूप में ले सकते हैं। #.Range[Length@#,1,-1]&
alephalpha

@Alephalpha के समाधान में सुधार:#.Range[Tr[1^#],1,-1]&
JungHwan मिन


2

नीम , 3 बाइट्स

𝐗𝐂𝐬

स्पष्टीकरण:

𝐗        Get prefixes of input, including itself
 𝐂       Implicitly join elements together, and create an array with all the digits
  𝐬      Sum

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

वैकल्पिक उत्तर:

𝐗𝐣𝐬

स्पष्टीकरण:

𝐗       Get prefixes of input, including itself
 𝐣       Join
  𝐬      Implicitly convert to a digit array, and sum

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


2

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

मैंने प्रत्येक स्वीकार्य इनपुट प्रकार के लिए एक लंबो लागू किया। वे संख्या के अंकों के माध्यम से प्रत्येक पुनरावृत्ति करते हैं, प्रत्येक संचयकर्ता को उचित गुणांक जोड़ते हैं।

इनपुट के रूप में पूर्णांक (53 बाइट्स)

से लैम्ब्डा Integerके लिए Integer:

n->{int s=0,i=1;for(;n>0;n/=10)s+=n%10*i++;return s;}

इनपुट के रूप में स्ट्रिंग प्रतिनिधित्व (72 बाइट्स)

से लैम्ब्डा Stringके लिए Integer:

s->{int l=s.length(),n=0;for(int b:s.getBytes())n+=(b-48)*l--;return n;}

इनपुट के रूप में अंक सरणी (54 बाइट्स)

लैम्बडा से int[](अंकों का, सबसे बड़ा स्थान मूल्य पहले) Integer:

a->{int l=a.length,s=0;for(int n:a)s+=n*l--;return s;}
  • -7 बाइट्स ओलिवियर ग्रेजायर को धन्यवाद

1
a -> {int l = a.length, s = 0; के लिए (int n: a) s + = n * l -; वापसी s;} सरणी संस्करण के लिए 54 बाइट्स।
ओलिवियर ग्रेगोइरे

2

पाइट , बाइट्स

ąĐŁř↔·

स्पष्टीकरण:

                 Implicit input
ą                Convert to array of digits
 Đ               Duplicate digit array
   Łř↔           Create a new array [len(array),len(array)-1,...,1]
      ·          Dot product with digit array
                 Implicit output

2

पायथन 3, 94 58 54 बाइट्स

मुझे कुछ बाइट्स बचाने में मदद करने के लिए मिस्टर एक्सकोडर का धन्यवाद !

lambda n:sum(int(v)*(len(n)-i)for i,v in enumerate(n))

यह ऑनलाइन की कोशिश करो!

एक स्ट्रिंग के रूप में इनपुट लेता है। यह बस प्रत्येक अंक को गुणा करता है और इसे जोड़कर उनकी राशि को वापस करने की आवश्यकता होती है।


अच्छा पहला उत्तर, लेकिन कृपया अपने व्हाट्सएप को अनावश्यक व्हाट्सएप को हटाकर और सभी वेरिएबल / फंक्शन के नामों को 1 बाइट लंबे समय तक जमा करके एक गंभीर दावेदार बनाएं। 69 बाइट्स
श्री एक्सकोडर


@ Mr.Xcoder धन्यवाद। मैं उसका ध्यान रखूंगा।
मनीष कुंडू

1
आप यह नहीं मान सकते हैं कि इसे हमेशा कहा जाएगा0 । यदि pजरूरी हमेशा 0, आप बदलना चाहिए pसाथ p=0में lambdaघोषणा। हालांकि, आप केवल 54 बाइट्सp प्राप्त करने के लिए पूरी तरह से हटा सकते हैं
caird coinheringaahing


2

आम लिस्प, 53 52 बाइट्स

(loop as(x . y)on(reverse(read))sum(+(reduce'+ y)x))

अंकों की सूची के रूप में इनपुट।

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

-1 बाइट @ceilingcat की बदौलत।


@ceilingcat, कुछ सामान्य लिस्प कंपाइलर वास्तव में विफल हो जाएंगे applyक्योंकि इसकी वजह से बहुत लंबी सूचियों के खिलाफ आवेदन किया जाता है call-arguments-limit
रेनजो
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.