একটি সংখ্যা ত্রিভুজ!


28

N 2 গণনা করার জন্য আমরা "স্কোয়ারিং" এন শব্দটি ব্যবহার করি । আমরা n 3 এর অর্থ "কিউবিং" n শব্দটি ব্যবহার করি । বলা হচ্ছে, কেন আমরা একটি সংখ্যাও ত্রিভুজ করতে পারি না?

কিভাবে একটি সংখ্যা ত্রিভুজ?

  • প্রথমে, একটি নম্বর বাছাই 53716,।

  • এটি একটি সমান্তরাল স্থানে স্থাপন করুন, যার পাশের দৈর্ঘ্য সংখ্যার অঙ্কের সমান এবং এর দুটি দিক তির্যকভাবে অবস্থিত রয়েছে, নীচে দেখানো হয়েছে।

        53716
       53716
      53716
     53716
    53716
    
  • এখন, আমরা এটি ঠিক করতে চাই? এটি করতে, এমন দিকগুলি ক্রপ করুন যা ডান-কোণযুক্ত ত্রিভুজটির সাথে খাপ খায় না:

        5
       53
      537
     5371
    53716
    
  • প্রতিটি সারিটির যোগফল নিন, উদাহরণস্বরূপ [5, 8, 15, 16, 22]:

        5 -> 5
       53 -> 8
      537 -> 15
     5371 -> 16
    53716 -> 22
    
  • তালিকাটি যোগ করুন [5, 8, 15, 16, 22], ফলস্বরূপ 66। এই এই সংখ্যাটির ত্রিভুজ!

চশমা এবং বিধি

  • ইনপুটটি একটি অ-নেতিবাচক পূর্ণসংখ্যা n ( n ≥ 0, n ∈ Z ) হবে।

  • আপনি ইনপুট নিতে এবং কোনও অনুমতিপ্রাপ্ত মাধ্যমে আউটপুট সরবরাহ করতে পারেন ।

  • ইনপুটটি পূর্ণসংখ্যা, পূর্ণসংখ্যার একটি স্ট্রিং প্রতিনিধিত্ব বা অঙ্কের তালিকা হিসাবে ফর্ম্যাট করা যায়।

  • ডিফল্ট লফোলগুলি অনুমোদিত নয়।

  • এটি , তাই বাইটের মধ্যে সংক্ষিপ্ততম কোডটি জয়ী!

আরও পরীক্ষার কেস

ইনপুট -> আউটপুট

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

প্রেরণা. ব্যাখ্যা উত্সাহিত হয়!


তুমি কি নিশ্চিত 645321 -> 91?
রড

@ রড দুঃখিত, আপনি ঠিক বলেছেন। আমি লিখেছিলাম 645321পরিবর্তে 654321
মিঃ এক্সকোডার

1
আমি অঙ্কের তালিকা হিসাবে ইনপুট নিতে পারি?
সম্পূর্ণরূপে

@ টোটালিহুমান হ্যাঁ, দ্বিতীয় বিবরণ দেখুন।
মিঃ এক্সকোডার

1
আকর্ষণীয় চ্যালেঞ্জ। আপনি আমার দ্বারা অনুপ্রাণিত হয়েছিল খুশি!
গ্রিফোন - মনিকা

উত্তর:




12

ব্রেন-ফ্লাক , 65, 50, 36 বাইট

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

এটি অনলাইন চেষ্টা করুন!

প্রচুর সংশোধন করার পরে, আমি এখন এই উত্তরটি নিয়ে খুব গর্বিত। আমি অ্যালগরিদম পছন্দ করি এবং এটি কতটা সুন্দরভাবে মস্তিষ্কের ফ্ল্যাঙ্কে প্রকাশ করা যায়।

বাইট গণনাটির বেশিরভাগই ইনপুটটিতে 0 এর পরিচালনা করে আসে। প্রকৃতপক্ষে, আমরা যদি ধরে নিতে পারি যে ইনপুটটিতে 0 টি নেই, তবে এটি একটি সুন্দরভাবে 20-বাইট উত্তর হবে:

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

এটি অনলাইন চেষ্টা করুন!

তবে দুর্ভাগ্যক্রমে, ব্রেন ফ্লাক প্রান্তের কেসগুলি পরিচালনা করার জন্য কুখ্যাত।

ব্যাখ্যা

প্রথমত, আমার একটি পর্যবেক্ষণ:

যদি ইনপুটটি 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

আহ স্যান্ডবক্স অনেক? অথবা আপনি প্রশ্নটি পড়েছেন, কোড লিখেছেন এবং সমস্ত এক মিনিটের মধ্যে পোস্ট করেছেন ?!
জোনাথন অ্যালান

@ জোনাথান অ্যালান এটি স্যান্ডবক্সযুক্ত ছিল না। এটি আপনার ভাবার চেয়ে অনেক সহজ।
মিঃ এক্সকডার

1
ওহ, আমি যে সময়টি নিয়েছি তাতে প্রশ্নটি পড়তে পারি না
জোনাথন অ্যালান

@ জোনাথান অ্যালান কোনও স্যান্ডবক্স পড়ছেন না, প্রশ্নটি পোস্ট হওয়ার ঠিক পরে ধরা পড়েছিল এবং প্রায় সঙ্গে সঙ্গেই একটি অ্যালগরিদম নিয়ে আসে।
ইটিএইচ প্রডাকশনগুলি

স্বাগতম, প্রশ্নটি পড়তে আমাকে 4 মিনিট সময় নিয়েছে, সুতরাং গতি-পাঠ / গতি-বোঝার জন্য +1 :)
জোনাথন অ্যালান

7

ব্রেন-ফ্লাক , 28 বাইট

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

এটি অনলাইন চেষ্টা করুন!

14 বাইট যদি আমাদের জিরো সমর্থন করার প্রয়োজন না হয় (যা আমরা করি)

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

এটি অনলাইন চেষ্টা করুন!

ডিজেএমসিএমহেমের এখানে একটি দুর্দান্ত উত্তর রয়েছে আপনার চেক আউট করা উচিত। দুর্ভাগ্যক্রমে তাঁর পক্ষে আমি তাঁর নিজের ভাষায় তাকে জিততে দিচ্ছিলাম না: পি

এটা কিভাবে কাজ করে?

সহজ সংস্করণ দিয়ে শুরু করা যাক।

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

এখানে প্রধান ক্রিয়াটি হ'ল ({}<>{})<>এটি বাম স্ট্যাকের শীর্ষে নেয় এবং ডান স্ট্যাকের শীর্ষে যুক্ত হয়। এই ক্রিয়াকলাপটি লুপ করে আমরা বর্তমান স্ট্যাকটি যোগ করি (যতক্ষণ না এটি একটি শূন্যের হিট হয়) যোগফলটি অফ স্ট্যাকের উপরে রেখে। এটি বেশ জাগতিক, আকর্ষণীয় অংশটি হ'ল আমরা এই সমস্ত রানের ফলাফলকে আমাদের ফলাফল হিসাবে সংযুক্ত করি। এটি পছন্দসই মান গণনা করবে। কেন? ভাল একটি উদাহরণ কটাক্ষপাত করা যাক 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আমি আপনার কাছ থেকে কিছু কম আশা করি। : ডি
ডিজেএমসিএমহেম

6

জাভাস্ক্রিপ্ট (ES6), 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, যদিও আমি বিশ্বাস করি না যে এটি কোনওরকম সাহায্য করে।
ETH প্রোডাকশনগুলি

@ এথ প্রডাকশন হ্যাঁ। আমি আশা করছিলাম যে আমি sum([])0 টি সত্যটি কাজে লাগাতে পারব , তবে কিছুই খুব একটা একসাথে আসছিল না ... যদিও উপায় আছে
বিজনেস ক্যাট

এটি অন্যথায় দেখেনি আমি আপনাকে আমার উন্নতি দিয়েছি।
জোনাথন অ্যালান

@ জোনাথন অ্যালান কোনও উদ্বেগ নেই: পি
বিজনেস বিড়াল

5

সি # (.নেট কোর) , 59 বাইট

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

এটি অনলাইন চেষ্টা করুন!

অন্যান্য সি # টি উত্তর থেকে যথেষ্ট আলাদা। ইনপুট হ'ল সংখ্যার একটি তালিকা। সমস্ত পরীক্ষার কেস টিআইও লিঙ্কের অন্তর্ভুক্ত।

শীর্ষস্থানীয় 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কৌতুক সহ টিপটির জন্য অনেকগুলি @ কুইজক্যাক ধন্যবাদ , এটি আমার 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

inside vim


আপনি বিকল্প কমান্ডের &পরিবর্তে (পুরো ম্যাচ) ব্যবহার করতে পারেন\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

এসটিডিআইএন থেকে ইনপুট পড়ুন।

আপডেট: আমি দেখছি ইনপুটটি অঙ্কের তালিকা হিসাবে দেওয়া যেতে পারে। আমার ইনপুট তালিকাটি নতুন লাইন-সীমাবদ্ধ।

এটি অনলাইনে চেষ্টা করুন

ব্যাখ্যা

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}{

এটি অনলাইন চেষ্টা করুন!

কিভাবে?

$ the ক্রমযুক্ত মোটকে ধরে রাখে, $ পি বর্তমান লাইনে অঙ্কের মোট সংখ্যা ধরে রাখে। সমান্তরালীর প্রতিটি লাইন সংখ্যার পরবর্তী অঙ্কের সাথে কেবল পূর্ববর্তী লাইন। সুতরাং, এটি পূর্ববর্তী লাইনের যোগফল এবং নতুন অঙ্কের যোগফল। এটি সমস্ত অঙ্কগুলিতে পুনরাবৃত্তি করে, যোগফলগুলি গণনা করে যেমন চলে। আসল প্রতিস্থাপন অপ্রাসঙ্গিক; আসল লুপ তৈরি না করে অঙ্কগুলি পুনরাবৃত্তি করার এটি কেবল একটি মাধ্যম। শেষে, $ \ -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

আমি ভেবেছিলাম অপসারণ এখনও কাজ করবে। করুণা ...
ইটিএইচ প্রডাকশন

@ ইথ প্রডাকশনস ... এবং তবুও সহায়তার জন্য একটি বিল্ট-ইন রয়েছে!
জোনাথন অ্যালান

... ঠিক আছে, বাহ ...
ইটিএইচ প্রডাকশন

@ ইথ প্রডাকশনস ওপসকে এটিকে বিপরীত করতে হয়েছিল> _ <
জোনাথন অ্যালান

2

রেটিনা , 13 বাইট

.
$`$&
.
$*
1

এটি অনলাইন চেষ্টা করুন! লিঙ্কে পরীক্ষার কেস অন্তর্ভুক্ত রয়েছে। ব্যাখ্যা: প্রথম পর্যায়টি মূল সংখ্যার সমস্ত উপসর্গ তৈরি করে, দ্বিতীয় স্তরটি প্রতিটি অঙ্ককে অ্যানারিতে রূপান্তর করে এবং তৃতীয় স্তরটি মোট গ্রহণ করে।



2

Neim , 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.leight, s = 0; for (int n: a) s + = n * l -; রিটার্ন এস;} 54 অ্যারে সংস্করণের জন্য বাইট।
অলিভিয়ের

2

পাইট , 9 6 বাইট

ąĐŁř↔·

ব্যাখ্যা:

                 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 বাইট
জনাব এক্সকডার


@ মিঃ এক্সকোডার ধন্যবাদ এটা আমি মনে রাখব।
মনীষ কুণ্ডু

1
আপনি ধরে নিতে পারেন না যে এটি সর্বদা সাথে ডাকা হবে0 । তাহলে pঅবশ্যই সবসময় হতে 0, আপনি প্রতিস্থাপন করা উচিত pসঙ্গে p=0lambdaঘোষণা। তবে, আপনি কেবল 54 বাইটp পেতে পুরোপুরি সরিয়ে ফেলতে পারেন
caird coinheringaahing


2

কমন লিস্প, 53 52 বাইট

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

অঙ্কের তালিকা হিসাবে ইনপুট।

এটি অনলাইন চেষ্টা করুন!

-1 বাইট @ সিলিংক্যাট ধন্যবাদ।


@ সেলিংক্যাট, applyখুব সাধারণ তালিকার বিরুদ্ধে যখন প্রয়োগ করা হয় তখন কিছু সাধারণ লিস্প সংকলক আসলে ব্যর্থ হয় call-arguments-limit
রেনজো
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.