एक संख्या को देखते हुए, इसका "सामूहिक योग" प्रिंट करें


20

इनपुट के रूप में एक संख्या को देखते हुए, इसकी सामूहिक राशि का प्रिंट आउट लें

सामूहिक योग क्या है?

संख्या 13214, इनपुट पर विचार करें

बाईं ओर से शुरू होने वाले प्रत्येक अंक के माध्यम से लूपिंग, हम इसकी सामूहिक राशि प्राप्त करने में सक्षम होंगे।

1 इसका मतलब है कि पहले अंक को देखें, और इसे योग, योग = 1 में जोड़ें

3 का अर्थ है "पहले 3 अंक" को देखें और इसे योग, योग = 1 + 132 में जोड़ें

2 का अर्थ है "पहले 2 अंक" को देखें और इसे योग, योग = 1 + 132 + 13 से जोड़ें

1 इसका मतलब है कि पहले अंक को देखें, और इसे योग में जोड़ें, योग = 1 + 132 + 13 + 1

4 का अर्थ है "पहले 4 अंक" को देखें और इसे जोड़ दें, योग = 1 + 132 + 13 + 1 + 1321

कुल योग = 1468और यह आपका आउटपुट है


विशेष स्थितियां:

यदि हम एक मुठभेड़ करते हैं 0, तो स्पष्ट रूप से हम योग को समान रखते हैं

The number 1301 would have a sum = 1 + 130 + 1 = 132

यदि हम एक ऐसी संख्या का सामना करते हैं जो बड़ी है तो इनपुट की लंबाई, हम इसे जोड़ते हैं

The number 251 would have a sum = 25 + 251 + 2 = 278

परीक्षण के मामलों:

collectiveSum(0) = 0

collectiveSum(2) = 2

collectiveSum(2315) = 23 + 231 + 2 + 2315 = 2571

बाइट्स की सबसे कम राशि जीतती है। हैप्पी गोल्फिंग!


6
जैसा कि अक्सर इन प्रकार के कार्यों के साथ एक सवाल है: क्या हम अपने इनपुट के रूप में अंकों की सूची को स्वीकार कर सकते हैं?
जोनाथन एलन

7
2315परीक्षण का मामला याद आ रही है + 2से 1और में परिणाम चाहिए 2571
जोनाथन एलन

क्या हम 0 से 0 के साथ शुरू होने वाले इनपुट से निपटना चाहते हैं? प्रोग्राम को इन इनपुट से कैसे निपटना चाहिए
fəˈnɪt Febk

ऐसा लगता है कि अंतिम परीक्षण मामला गलत है; होना चाहिए 2571
झबरा

मैं यह नहीं देखता कि पूर्णांक की सूची के बजाय इनपुट एक संख्या क्यों होनी चाहिए। यह इनपुट के एक अनावश्यक रूप से बोझिल रूप की तरह लगता है।
गेहूं जादूगर

जवाबों:


7

05AB1E ,  4  3 बाइट्स

-1 केविन क्रूज़सेन के लिए धन्यवाद (ए से बचने का उपयोग })

€£O

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

कैसे?

€£O - implicit input   e.g. 2315
€   - map with:
 £  -   head to             23, 231, 2, 2315
  O - sum                   2571

मुझे 13 सेकंड तक मारो xD
मैजिक ऑक्टोपस Urn

खुशी है कि मैं बाइट्स के लिए लिंक जोड़ने के लिए इंतजार कर रहा था: पी
जोनाथन एलन

ε£}€£एक बाइट को बचाने के लिए किया जा सकता है।
केविन क्रूज़सेन

@ केविनक्रूजसेन यह भी एक विकल्प था जब मैंने इसे बनाया था?
जोनाथन एलन

@JonathanAllan पूरी तरह से निश्चित नहीं है, लेकिन मुझे लगता है कि यह वास्तव में पहले से ही था। अदनान ने 2018 की गर्मियों में (जिसे अगस्त में रिलीज़ किया गया था) अमृत लेखन फिर से लिखना शुरू किया, और इससे पहले ही 05AB1E के विरासत संस्करण में काफी समय के लिए वहाँ था। अप्रैल 2018 में जब मैंने अपना पहला पहला 05AB1E उत्तर पोस्ट किया था, तो यह पहले से ही था। इसलिए यह संभव है कि यह उत्तर पोस्ट करने के तुरंत बाद जोड़ा गया हो, लेकिन मुझे यकीन नहीं है।
केविन क्रूज़सेन

5

पायथन 2 , 43 बाइट्स

lambda n:sum(int('0'+n[:int(x)])for x in n)

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


दुर्भाग्य से यह ValueErrorइनपुट के लिए 1301, या ऐसे किसी इनपुट के लिए है जो शून्य को इसके अंकों में से एक के रूप में प्रकट करता है ।
मैथमंडन

@ मथमंदन अब तय होना चाहिए?
केवल

intसमारोह एक पूर्णांक स्वीकार कर सकते हैं, की जगह '0'सिर्फ साथ स्ट्रिंग शाब्दिक 0एक बाइट बंद दाढ़ी चाहिए।
MooseOnTheRocks

@MooseOnTheRocks ने इस तरह से काम किया, जो मुझे कम हॅंड-लुकिंग (?) लगता है, जब तक कि मैं बेवकूफ नहीं हूँ और कुछ गड़बड़ कर दिया (आमतौर पर)
ASCII-only

4

पायथन 2, 72 बाइट्स

पहला सबमिशन! मदद के लिए @DestructibleLemon के लिए धन्यवाद!

import sys;d=sys.argv[1];s=0;for e in d:s+=int(d[:int(e)]);print str(s)

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

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

3

हास्केल, 43 37 बाइट्स

f l=sum[read$'0':take(read[d])l|d<-l]

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

इनपुट नंबर को एक स्ट्रिंग के रूप में लिया जाता है।

   [        |d<-l]      -- for every digit d in the input string
        read[d]         -- convert to a number
      take     l        -- and take that many digits from l
     0:                 -- prepend a 0 (to handle 0s)
   read                 -- convert to a number
sum                     -- sum all numbers

3

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

->n{n.sum{|x|n[0,x.to_i].join.to_i}}

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


#sumफ़िक्नेम्स पर परिभाषित नहीं किया गया है, इसलिए मुझे लगता है कि आप nएक स्ट्रिंग बनना चाहते हैं । हालाँकि, String#sumगणना करता है not a particularly good checksumऔर आपके द्वारा दिए गए ब्लॉक को अनदेखा करता है । यदि आप का मतलब है n.chars.sum{, Enumerable#sumयह रेल द्वारा प्रदान की एक विस्तार है, माणिक stdlib में नहीं है। कृपया उन्हें पोस्ट करने से पहले अपने समाधान का परीक्षण करें।
शेल्वैकू

@Shelvacu हाँ, मैं एक सरणी के रूप में इनपुट ले रहा हूं ... हालांकि प्रदान किए गए पाद लेख देखें। इसके अलावा Enumerable#sumरूबी 2.4 में है , और TIO 2.4 का उपयोग करता है
केवल

31 बाइट्स यदि आप इनपुट के रूप में अंकों की एक सरणी लेते हैं
Asone Tuhid

@AsoneTuhid मुझे नहीं लगता कि यह इनपुट का एक मान्य रूप है, अगर आपको सबूत मिले अन्यथा कृपया बताएं
केवल

यह पृष्ठ समस्या को संबोधित नहीं करता है, लेकिन मुझे पूर्णांकों की एक सूची नहीं दिखती है जो वर्णों की सूची से बहुत अलग है (जो आपके उत्तर को इनपुट के रूप में लेता है)
Asone Tuhid

3

जावास्क्रिप्ट, 42 40 बाइट्स

धन्यवाद @ बाइट 2 बाइट्स के लिए गोल्फ से

f=
x=>[...x].map(y=>a+=+x.slice(0,y),a=0)|a

console.log(f("2315"))
console.log(f("0100"))
console.log(f("2"))
console.log(f("01025"))

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


40 बाइट्स:x=>[...x].map(y=>a+=+x.slice(0,y),a=0)|a
झबरा

3

आर, 57 बाइट्स

@Vlo को एक और धन्यवाद दिया

sum(strtoi(substring(i<-scan(,""),1,el(strsplit(i,"")))))

था: @Robert हैकेन के सुझाव के लिए 4 बाइट्स सहेजे गए।

i=scan(,"");sum(strtoi(substring(i,1,el(strsplit(i,"")))))

एक सरल स्ट्रिंग दृष्टिकोण।


1
आप 4 बाइट की जगह बचा सकता unlistद्वारा el
रॉबर्ट हैकेन

1
इनलाइन असाइनमेंट के साथ 1 को बचाएंsum(strtoi(substring(i<-scan(,""),1,el(strsplit(i,"")))))
Vlo


2

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

IΣIEθ✂θ⁰Iι

इसे ऑनलाइन आज़माएं! लिंक कोड के वर्बोज़ संस्करण के लिए है। स्पष्टीकरण:

   Eθ       Map over input string
        Iι  Cast current character to integer
     ✂θ⁰    Slice input string to that length
 ΣI         Cast slices to integer and take the sum
I           Cast result to string and implicitly print

हाहा, मेरे पास ठीक यही बात थी
ASCII-only

2

ऑक्टेव , 56 बाइट्स

@(n)sum(str2num(['' 32+char(n.*(find(n)<=(n'-48))-32)]))

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

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

छोटा संस्करण

@(n)sum(str2num(['' char(n.*(find(n)<=(n'-48)))]))

Matlab में काम करता है, क्योंकि char(0)एक अंतरिक्ष के रूप में व्यवहार किया जाता है।


2

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

-2 डेनिस के लिए धन्यवाद (सिर सदिश> <।)

4 अगर हम अंकों की सूची ले सकते हैं *

Dḣ`ḌS

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

* ḣ`ḌS

कैसे?

Dḣ`ḌS - Link: integer, n   e.g. 2315
D     - to decimal list         [2,3,1,5]
  `   - repeat left as right    [2,3,1,5]
 ḣ    - head                    [2,3], [2,3,1], [2], [2,3,1,5]
   Ḍ  - from decimal lists      23, 231, 2, 2315
    S - sum                     2571






1

जाप, 5 बाइट्स

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

¬x@¯X

कोशिश करो


व्याख्या

          :Implicit input of integer string U
¬         :Split to an array of characters/digits
  @       :Pass each X through a function
   ¯X     :Slice U from the first to the Xth character
 x        :Reduce by addition

O_o या तो जाप वास्तव में गोल्फ है या मैं वास्तव में गलत कर रहा हूं
केवल

2
@ एएससीआईआई-ओनली: ज्यादातर लोगों को एहसास होने की तुलना में जाप बहुत अधिक "गोल्फ" है; हम हाल ही में एससीआई -कला चुनौती में चारकोल और एसओजीएल को हराकर, चुनौतियों का अपना उचित हिस्सा जीतते हैं ।
झबरा

@ शाग्गी ज़रूर, लेकिन मुझे यह एहसास नहीं था कि यह जेली / वास्तव में / 05AB1E स्तर की गोल्फ है
केवल

@ ASCII- केवल: ओह, हाँ, यह निश्चित रूप से उनके साथ वहाँ है, यह खुद अच्छी तरह से पकड़ रहा है :) यदि आप रुचि रखते हैं, तो महीने की हमारी भाषा पर एक नज़र डालें। या कुछ ही समय में Japt chatroom में छोड़ दें और हम आपको एक दौरा देंगे।
झबरा

1

स्टैक्स , 6 बाइट्स

ç╫&º±å

इसे ऑनलाइन चलाएं और डीबग करें

इसी कार्यक्रम का संबंधित एएससीआई प्रतिनिधित्व है।

EZFy(e+

E        get array of digits
 Z       push 0 under array of digits
  F      for each digit, run the rest of the program
   y     input as a string
    (    get start of string for specified number of characters
     e   evaluate substring as integer
      +  add


0

जावास्क्रिप्ट, 43 बाइट्स

यह सुबह 3 बजे के बाद ठीक है, मैं अभी भी गोल्फ क्यों हूँ?

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

s=>(g=x=>s[x]?+s.slice(0,s[x])+g(++x):0)(0)

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



0

K4 , 22 बाइट्स

समाधान:

+/10/:'(x&#x)#\:x:10\:

उदाहरण:

q)k)+/10/:'(x&#x)#\:x:10\:13214
1468
q)k)+/10/:'(x&#x)#\:x:10\:1301
132
q)k)+/10/:'(x&#x)#\:x:10\:251
278
q)k)+/10/:'(x&#x)#\:x:10\:2315
2571

स्पष्टीकरण:

आधार -10 में विराम, प्रत्येक संख्या का मिनट और इस से सूची की लंबाई लें। वापस कन्वर्ट और योग।

+/10/:'(x&#x)#\:x:10\: / the solution
                  10\: / to base 10, 123 => 1 2 3
                x:     / save as x
             #\:       / take (#) each left
       (    )          / the left
          #x           / count (#) length of x
        x&             / min of x and the length
  10/:'                / from base 10 each
+/                     / sum up the results

0

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

n->n.chars().map(c->(c-=48)>0?new Integer(n.substring(0,c<n.length()?c:n.length())):0).sum()

स्पष्टीकरण:

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

n->                                  // Method with String parameter and int return-type
  n.chars()                          //  Loop over the characters
   .map(c->(c-=48)                   //   Convert character to digit
        >0?                          //    And if it's larger than 0
         new Integer(n.substring(0,  //     Take the first `x` digits, where `x` is:
          c<n.length()?              //      If the digit higher than the total a.o. digits
           c                         //       Take the first `c` digits
          :                          //      Else:
           n.length()))              //       Take all digits
         :                           //    Else:
          0)                         //     Take 0
   .sum()                            //   And sum everything



0

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

DµḣµVS

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

Dइनपुट की igits प्राप्त करें , फिर पहले [प्रत्येक अंक] इनपुट ( ead) के तत्वों को प्राप्त करें , फिर Vइसे प्रत्येक संख्या को फिर से और Sum बनाने के लिए प्रत्येक राशि को e करें ।

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