अंकों को जोड़ना और अंक उलट गए


26

एक संख्या> 0 को देखते हुए, सभी अंकों (1 .. n) के साथ योग को समाप्‍त और उलट दिया जाता है और उन्हें जोड़ दिया जाता है। उदाहरण के लिए, n = 6 के साथ:

1 से 6 की संख्या:

123456

उलट:

654321

उन्हें एक साथ जोड़ने पर परिणाम होगा: 777777. एक और उदाहरण n = 11 है:

1 2 3 4 5 6 7 8 9 10 11 > 1234567891011

तथा

11 10 9 8 7 6 5 4 3 2 1 > 1110987654321

उन्हें एक साथ जोड़ने के परिणामस्वरूप होगा 2345555545332। इसे A078262 के रूप में भी जाना जाता है ।

सबसे छोटा कोड जीतता है!



क्या कोई सीमा है n, या क्या हमें मनमाने ढंग से बड़े पूर्णांक का समर्थन करना है?
लीजनमोनमाल 978

मुझे लगता है कि डिफ़ॉल्ट "द्वारा बाध्य है max(256,yourlanguagesdefaultintegertypelimit)"। लेकिन यह निर्दिष्ट किया जाना चाहिए।
कैलक्यूलेटर

@ LegionMammal978 जब तक आपकी भाषा समर्थन करती है।
लामरो

महत्वपूर्ण परीक्षण मामला: 10जो देना चाहिए 23333333231
अदनान

जवाबों:


9

05AB1E, 7 बाइट्स

LDRJsJ+

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

व्याख्या

LDRJsJ+

L        range from 1 .. input
 D       duplicate
  R      reverse
   JsJ   convert both arrays to strings
      +  add (coerces both strings to ints)

मैं डिजाइन की पसंद से बहुत भ्रमित महसूस करता हूं जो +एक नेस्टेड जोड़ करने वाली सूचियों का नेतृत्व करता है, जबकि स्ट्रिंग्स के लिए यह किट्स में परिवर्तित होता है और फिर जोड़ता है। लेकिन मुझे लगता है कि यह यहाँ काम किया! : P
FryAmTheEggman

@FryAmTheEggman मैं इसके अलावा नेस्टेड निकालने जा रहा हूँ। यह उस समय से उपयोगी नहीं है जब मैंने इसे लागू किया है ...
अदनान

3
शीश, मैं दो घंटे के लिए पीपीसीजी छोड़ देता हूं और जब मैं चला जाता हूं तो आप खुद एक्वा टार्ट का नाम बदल देते हैं ... ओह, पीपीसीजी उपयोगकर्ता का जीवन।
ETHproductions

6

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

R,U$DF€ḌS

livecoding 


2
क्या यह मैं या मैं उस कोड को चुपके से कुछ यू $ डी चोरी करते हुए देख सकता हूं?
gcampbell

5

CJam, 15 14 बाइट्स

बाइट शेविंग करने के लिए मार्टिन को धन्यवाद!

ri,:)_W%si\si+

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


1 बाइट कम होने पर अगर आप न्यूमेरिक एरे के बजाय स्ट्रिंग को फ्लिप करते हैं:ri,:)s_W%i\i+
लुइस मेंडो

क्षमा करें, मुझे लगता है कि मेरे संस्करण के लिए काम नहीं करता है10
लुइस मेंडो

1
यह कोड गुप्त रूप से खुश है। :)
साइओस

4

पायथ, 12 10 बाइट्स

ssMjLk_BSQ

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

Qइनपुट, है Sयह में बदल जाता है [1, 2, ..., input()], _Bbifurcates इस पर _(रिवर्स) बनाने के लिए [rng, rev(rng)], jLkइस पर नक्शे joinसे k(जो "रिक्त स्ट्रिंग" चर रहा है), sMनक्शे intके ऊपर इस परिणामी सरणी, और sअंत में राशि की गणना करता है।


4

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

a=>(z=[...Array(a)].map((b,c)=>c+1)).join``- -z.reverse().join``

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


@TimmyD ने एक स्पष्टीकरण जोड़ा।
Mwr247

@TimmyD ओह! > _ <चुनौती की मेरी गलतफहमी है कि कैसे ... हाँ, मुझे इसे ठीक करना होगा।
Mwr247

@TimmyD ने मुझे ऑनलाइन वापस लाने के लिए काफी लंबा समय लिया। यह अब तय हो गया है, और इसे पकड़ने के लिए धन्यवाद।
Mwr247

जैसा कि एक अन्य जवाब के लिए उल्लेख किया गया है, यह केवल तभी काम करता है जब पैरामीटर 1 और 12 के बीच है, यह वास्तव में बहुत कम है
edc65

@ edc65 प्रति ओपी की टिप्पणी , यह काफी बड़ा है।
Mwr247

3

पायथन 3, 74

DSM की बदौलत 6 बाइट्स बचाए।

कुछ भी रोमांचक नहीं है, पर्वतमाला में शामिल हों और फिर किलों में परिवर्तित करें और उन्हें जोड़ें।

lambda x:sum(int(''.join(list(map(str,range(1,x+1)))[::i]))for i in(1,-1))

3

रेटिना , 71

क्योंकि इसके blatantly नौकरी के लिए गलत उपकरण।

.+
$*a:$&$*
+`^(a+)a\b(.*)\b1(1+)$
$1 $& $3
 ?(\w)+ ?
$#1
\d+:?
$&$*c
c

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

6 अप करने के लिए आदानों के लिए काम करता है, लेकिन उसके बाद ऑनलाइन दुभाषिया बार।


1
आप अंतिम पंक्ति को दूर करने और बदलकर 74 करने के लिए इसे छोटा कर सकते हैं (c)+करने के लिए c
दावको

@daavko हाँ, निश्चित रूप से, धन्यवाद!
डिजिटल ट्रामा

इसके अलावा, $&$*c-> $*cऔर \d+:?-> \d+और यह 70 है। और किसी कारण से यह काम करता रहता है ...
दावको

3

जोल्फ, 9 बाइट्स

यहाँ कोशिश करो! बदलें के साथ \x10

+P►γzjP_γ
    zj    range 1...j
   γ      γ = ^
  ►        ^ .join("")
 P         as a number
+     P_γ  and γ reversed

मैं टाइप कास्टिंग के इर्द-गिर्द घूमकर इसे गोल्फ करने में सक्षम हो सकता हूं ।


आप अजगर और doorknob को हरा!
साइओस

@ मुझे ऐसा लगता है कि मैंने O_O
कॉनर ओ'ब्रायन

3

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

n=>(a=[...Array(n+1).keys()].slice(1)).join``- -a.reverse().join``

हाँ, वह एक स्थान है। ओह। कम से कम @Downgoat ने मुझे एक बाइट को बचाने में मदद की।


1
आप बाइट को बचाने के लिए सबसे पहले +और + +-> - -को बना सकते हैं
डाउनगैट

n => (a = [... Array (n)]। नक्शा (_ => n -))। join- -a.reverse().join
edc65

नोट: सरल जेएस अंकगणित का उपयोग करना यह मूल्यों 1 तक सीमित है .. 12
edc65


2

पॉवरशेल, 35 बाइट्स

param($a)+-join(1..$a)+-join($a..1)

इनपुट को श्रेणियों के साथ परिवर्तित करता है .., फिर -joinउन्हें एक साथ जोड़ता है, और उन्हें ऊपर जोड़ता है।

इनपुट नंबरों के लिए काम करेगा 138, जबकि 139देगा Infinity, 140और इसके बाद के संस्करण में एक अजीब वर्बोज़ कास्टिंग त्रुटि होगी।

Cannot convert value "12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413
5136137138139140" to type "System.Int32". Error: "Value was either too large or too small for an Int32."


2

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

यह अंक द्वारा अंक जोड़ता है, इसलिए यह जावास्क्रिप्ट की परिशुद्धता के 53 बिट्स से ऊपर की संख्या को अच्छी तरह से संभाल सकता है

n=>eval("for(a=b=c=r='';n;a+=n--)b=n+b;for(i=a.length;i--;r=c%10+r)c=(c>9)-(-a[i]-b[i]);c>9?1+r:r")

परीक्षा

f=n=>eval("for(a=b=c=r='';n;a+=n--)b=n+b;for(i=a.length;i--;r=c%10+r)c=(c>9)-(-a[i]-b[i]);c>9?1+r:r")

// Less golfed
U=n=>{
  for(a=b=c=r=''; n; --n)
      b=n+b, a+=n;
  for(i=a.length; i--; r = c%10+r) 
      c=(c>9)-(-a[i]-b[i]);
  return c>9? 1+r : r;
}

function test() {
  var n=+I.value
  R.textContent=f(n)
}  

test()
N: <input id=I value=11 oninput="test()"> -> <span id=R></span>


9 के लिए काम करने के लिए प्रतीत नहीं होता है। इसके अलावा, cअन्य चर के साथ आरंभ क्यों नहीं ?
नील

आपने मेरा उत्थान किया है।
नील


2

MATL , 13 बाइट्स

:tP2:"wVXvU]+

EDIT (20 मई, 2016) लिंक में कोड भाषा के हालिया परिवर्तनों के कारण, के Xzबजाय उपयोग करता है Xv

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

:                % range [1,2,...,n], where n is input
 tP              % duplicate and flip
   2:"     ]     % do this twice
      w          % swap
       V         % convert array of numbers to string with numbers and spaces
        Xv       % remove spaces
          U      % convert to number
            +    % add the two numbers

11 या 10. के लिए काम नहीं करता है (संकेत: स्ट्रिंग में परिवर्तित करने से पहले रिवर्स रेंज।)
मामा फन रोल

@ ӍѲꝆΛҐӍΛПӍѲꝆΛҐӍΛ धन्यवाद! सही किया
लुइस मेंडो

महान! एक उत्थान है।
मामा फन रोल



1

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

{([~] @_=1..$^n)+[R~] @_}
{
  (
    [~]           # reduce with the string concatenation infix op:
    @_ = 1 .. $^n # the range 1 to input ( also stored in @_ )
  )
  +               # add that to
  [R~] @_         # @_ reduced in reverse
}

उपयोग:

for 6, 11, 12 -> $n {
  say {([~] @_=1..$^n)+[R~] @_}( $n )
}
777777
2345555545332
244567776755433

मुझे लगता है कि आप$n$^n
andlrc

@ देव-शून्य यदि मैं चाहता हूं कि यह ब्लॉक का एक इनपुट हो। -> $n {के लिए एक अलग से एक है $^n
ब्रैड गिल्बर्ट

1

आर, 34 60 64 बाइट्स

f=pryr::f;g=f(as.numeric(paste(x,collapse='')));f(g(1:n)+g(n:1))

मान लिया गया है कि pryrपैकेज स्थापित है। यह fकार्य बनाने के लिए एक आशुलिपि के रूप में देता है ।

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

संपादित करें ने n = 10 से ऊपर के मामलों को संभालने के लिए एक और 4 बाइट्स जोड़े जहां स्ट्रैटो (पहले इस्तेमाल किया गया) वापस आ रहा था NA



1

लूआ, 53 बाइट्स

यह प्रोग्राम nकमांड-लाइन तर्क के रूप में लेता है।

s=""r=s for i=1,arg[1]do r,s=i..r,s..i end print(s+r)

मैंने मान लिया कि 0 के दशमलव भाग के साथ एक संख्या 777777.0को आउटपुट करना ठीक था (इस रूप में क्योंकि लुआ में एक संख्या को आउटपुट करने का डिफ़ॉल्ट तरीका है (पूर्णांक और फ्लोट के बीच कोई अंतर नहीं है)


इसका वह स्ट्रिंग नहीं है जो उलटा है, लेकिन अंक। आपका कोड n> = 10. पर विफल रहता है
Moop

@Moop को 1 बाइट की कीमत पर ठीक किया गया ^ ^ '। टिप्पणी के लिए धन्यवाद ^ ^ '
कैटेनको

आप ar का उपयोग कर 3 अधिक बचा सकते हैं ... आरजी के बदले आर 1 के लिए अच्छा काम, मेरे जवाब में ऐसा नहीं सोचा था। +1
Moop

@ नमस्कार मैंने आपका पोस्ट देखा, इसका अच्छा उपयोग किया, मुझे यह भी नहीं पता था कि आप इस ...तरह का उपयोग कर सकते हैं ! मैं इसे इस समय के लिए रखूँगा, क्योंकि मैं ऑनलाइन कंपाइलर के अलावा किसी और चीज़ का उपयोग नहीं कर सकता और इसे संभाल नहीं सकता (मैं इसे टेस्ट करना चाहूँगा और इसे डालने से पहले थोड़ा सा खेलूँगा। उत्तर :))
काटनेंको

1

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

25 बाइट्स, प्लस 1 फॉर -pऔर 11 फॉर-MList::Gen

$_=<[.]1..$_>+<[R.]1..$_>

पिछला समाधान, 40 बाइट्स: 39, प्लस एक के लिए -p

@a=reverse@_=1..$_;$"=$\;$_="@a"+"@_"

1

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

के लिए +1 शामिल है -p

STDIN पर चलाएं

perl -p reverse.pl <<< 6

reverse.pl

$_=eval join"",map{abs||"+"}-$_..$_

1

डायलॉग एपीएल , 17 बाइट्स

+/⍎¨∊¨⍕¨¨x(⌽x←⍳⎕)

एक्स रिवर्स एक्स में
इनपुट
x←स्टोर सूची तक इनपुट की गणना के लिए शीघ्र … मूल सूची के साथ उलट सूची को प्रत्येक स्ट्रिंग में प्रत्येक सूची के चरित्र स्ट्रिंग में परिवर्तित करें चरित्र स्ट्रिंग के प्रत्येक सूची को एकल वर्ण स्ट्रिंग में प्रत्येक वर्ण स्ट्रिंग को दो संख्याओं में बदलने के लिए दो संख्याओं में बदलें। ।

x()
⍕¨¨
∊¨
⍎¨
+/



0

रेटिना, 80 बाइट्स (आईएसओ 8859-1 एन्कोडिंग)

'+
$0¶$0
+`^(('+)')
$2 $1
+`('('+))$
$1 $2
(')+( |$)?
$#1
(\d+)¶(\d+)
$1$*'$2$*'

'काउंटिंग कैरेक्टर के रूप में IO एकतरफा है । सिद्धांत रूप में, आपके द्वारा उस पर फेंकने वाले किसी भी पूर्णांक का समर्थन करता है, व्यवहार में ... ऑनलाइन दुभाषिया 6 (यूनीरी '''''') से बड़े किसी भी चीज़ को संसाधित करने से इनकार करता है ।

इसे ऑनलाइन आज़माएं!
इसे ऑनलाइन आज़माएं! (दशमलव IO - 91 बाइट्स)


0

S, 12 चार्ट / 15 बाइट्स

⨭⟮⩤⁽1ï⟯⨝,Ⅰᴚ⨝

Try it here (Firefox only).

भावहीन।

व्याख्या

एक सीमा लेता है [1,input], इसमें शामिल होता है; वही सीमा लेता है, उलटा करता है, फिर उससे जुड़ता है; दोनों श्रेणियों का योग परिणाम है।


0

रूबी, 40 अक्षर

->n{eval (l=[*1..n])*''+?++l.reverse*''}

नमूना रन:

irb(main):001:0> ->n{eval (l=[*1..n])*''+?++l.reverse*''}[11]
=> 2345555545332

irb(main):002:0> ->n{eval (l=[*1..n])*''+?++l.reverse*''}[6]
=> 777777

0

सी #, 126 बाइट्स

using System.Linq;a=>{var b=Enumerable.Range(1,a);return long.Parse(string.Concat(b))+long.Parse(string.Concat(b.Reverse()));}

संभवतः आगे गोल्फ हो सकता है। पक्का नहीं है।


0

ग्रूवी, 42 39 अक्षर

{[1..it,it..1]*.join()*.toLong().sum()}

नमूना रन:

groovy:000> ({[1..it,it..1]*.join()*.toLong().sum()})(11)
===> 2345555545332

groovy:000> ({[1..it,it..1]*.join()*.toLong().sum()})(6)
===> 777777
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.