সমান্তরালগ্রাম একটি সংখ্যা


18

এখন যেহেতু আমরা জানি যে কীভাবে কোনও সংখ্যাকে সঠিকভাবে বর্গক্ষেত্র এবং ত্রিভুজ করা যায়, আমরা কীভাবে কোনওটির সমান্তরাল করতে হবে তা শিখছি। একটি সংখ্যার সমান্তরাল করতে, আমরা প্রথমে এটিটিকে নিজের উপরের সংখ্যার সমান বহুগুণ নিজের উপরে স্ট্যাক করে এবং সমান্তরালগ্রাম হিসাবে ফাঁকা স্থান যোগ করে এটি সমান্তরালগ্রাম হিসাবে সাজাই arrange সুতরাং 123গঠন করবে:

   123
  123
 123

এখন আমরা প্রতিটি অনুভূমিক এবং উল্লম্ব সংখ্যা নিই এবং সেগুলি যুক্ত করি 123+123+123+1+12+123+23+3, যা সমান 531, যা সমান্তরালোগ্রাম 123

তোমার কাজ:

এমন একটি প্রোগ্রাম বা ফাংশন লিখুন যা কোনও সংখ্যাকে ইনপুট হিসাবে দেওয়া হলে, সংখ্যার সমান্তরালাম দেয়।

ইনপুট:

একটি অ-নেতিবাচক পূর্ণসংখ্যা বা একটি স্ট্রিং দ্বারা প্রতিনিধিত্বমূলক একটি নেতিবাচক।

আউটপুট:

পূর্ণসংখ্যার সমান্তরাল।

পরীক্ষার কেস:

1234567 -> 10288049
123     -> 531
101     -> 417
12      -> 39

স্কোরিং:

এটি , বাইট জয়ের সর্বনিম্ন স্কোর!



ডাউনভোট কেন?
গ্রিফন - মনিকার 16 ই

উত্তর:


9

এমএটিএল , 12 বাইট

tnEXyPY+c!Us

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

ব্যাখ্যা

ইনপুট বিবেচনা করুন '123'উদাহরণ হিসাবে ।

কোডটি ইনপুটটিকে নকল করে ( t) এবং Xyইনপুট দৈর্ঘ্যের ( nE) দ্বিগুণ আকারের একটি পরিচয় ম্যাট্রিক্স ( ) তৈরি করে :

1 0 0 0 0 0
0 1 0 0 0 0
0 0 1 0 0 0
0 0 0 1 0 0
0 0 0 0 1 0
0 0 0 0 0 1

তারপরে এটিকে উল্টে ফেলা হবে ( P):

0 0 0 0 0 1
0 0 0 0 1 0
0 0 0 1 0 0
0 0 1 0 0 0
0 1 0 0 0 0
1 0 0 0 0 0

অঙ্কগুলির ASCII কোড হিসাবে ব্যাখ্যা করা ইনপুট স্ট্রিংটি সংখ্যার সারি ভেক্টরের সমতুল্য

49 50 51

Y+উপরের ভেক্টর এবং ম্যাট্রিক্সের পূর্ণ আকারের দ্বি-মাত্রিক সমঝোতা ( )

 0  0  0  0  0 49 50 51
 0  0  0  0 49 50 51  0
 0  0  0 49 50 51  0  0
 0  0 49 50 51  0  0  0
 0 49 50 51  0  0  0  0
49 50 51  0  0  0  0  0

ASCII কোড ( c) হিসাবে এই সংখ্যাগুলি আবার ব্যাখ্যা করে নিম্নলিখিত চর ম্যাট্রিক্স দেয়, চর 0 এর সাথে স্থান হিসাবে উপস্থাপিত:

     123
    123 
   123  
  123   
 123    
123

!স্থানান্তর ( ) এটিকে রূপান্তর করে

     1
    12
   123
  123 
 123  
123   
23    
3     

প্রতিটি সারিকে সংখ্যার ( U) হিসাবে ব্যাখ্যা করলে সংখ্যার কলাম ভেক্টর দেয়

  1
 12
123
123
123
123
 23
  3

এবং সংক্ষেপে ( s) চূড়ান্ত ফলাফল দেয় 531,।


1
আমি গন্ধ ... সংবর্তন
আদনান

1
@ আদনান আর কি? :-D
লুইস মেন্ডো

6

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

.
$`;$&$';$_;
\d+
$*
1

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


6

05 এ বি  1 ই , 12 11  8 বাইট

আমি নিশ্চিত যে এটি করতে পারে জানতাম আরও golfed যেতে পারে - টিপস স্বাগত জানাই!

-১ বাইট ধন্যবাদ এরিক দ্য আউটগল্ফারকে (মোড়কে এড়িয়ে চলুন তবে একটি কনটেন্টেশন ব্যবহার করে)
এবং তারপরে ...
-3 আরও বাইট আদনানকে ধন্যবাদ (ভেক্টোরাইজিং সংযোজন এবং শেষের দিকে ইনপুটটি বিয়োগ করে দৈর্ঘ্য -1 দ্বারা গুণন এড়ান)

.s¹η++Oα

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

কিভাবে?

.s¹η++Oα - implicit input, say i      e.g.  123
.s       - suffixes                         [3,23,123]
  ¹      - push i                           123
   η     - prefixes                         [1,12,123]
    +    - addition of top two              [4,35,246]
     +   - addition (vectorises)            [127,158,369]
      O  - sum                              654
       α - absolute difference abs(123-654) 531
         - implicit print

আপনি «প্রত্যয় এবং উপসর্গ g<*¹.s¹η«O+
একত্রিত

1
.s¹η++Oα8 বাইটের জন্য কাজ করা উচিত
আদনান

ধন্যবাদ @ এরিকথ আউটগলফার দু'টি মোড়ক আমার কাছে অদ্ভুত বলে মনে হয়েছে!
জোনাথন অ্যালান

@ আদনান - বেশ মিষ্টি!
জোনাথন অ্যালান

@ জোনাথন অ্যালান "টিপস স্বাগত!" আপনি আর কিছু পেয়েছেন কিনা তা নিশ্চিত নন ...
এরিক দি আউটগল্ফার

5

হাস্কেল , 90 78 76 71 64 63 59 59 বাইট

g x=sum[x+div x(10^a)+mod x(10^a)|(a,_)<-zip[1..]$show x]

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


g x=sum[x+div x a+mod x a|(a,_)<-zip((10^)<$>[1..])$show x]
নিমি

g x=sum[x+div x(10^a)+mod x(10^a)|(a,_)<-zip[1..]$show x]একটি চুল ছোট এখনও।
লিন

g x=sum[x+x`div`10^a+x`mod`10^a|(a,_)<-zip[1..]$show x]
লাইকনি

4

হুশ , 13 12 বাইট

ṁit§+SRL§+ḣṫ

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

ব্যাখ্যা

              -- implicit input, say "123"
   §+         -- concatenate the results of the following two functions
     SR       --  ¹repeat the input n times, where n is the result of the next function
       L      --   length                                                  ["123","123"]
        §+   --  ²concatenate the results of the following two functions
          ḣ  --     prefixes                                              ["","1","12","123"]
           ṫ --     suffixes                                              ["123","23","3",""]
              -- inner concatenation                                      ["","1","13","123","123","23","3",""]
              -- outer concatenation                                      ["123","123","","1","13","123","123","23","3",""]
  t           -- all but the first element                                ["123","","1","13","123","123","23","3",""]
ṁ             -- map then sum
 i            --   convert to integer (where "" converts to 0)


4

পাইথন 3 , 85 70 বাইট

f=lambda n,r=1,i=int:n[r:]and i(n[r:])+i(n[:r])+f(n,r+1)+i(n)or i(n)*2

ইনপুট জন্য 12345:

পূর্ণসংখ্যায় কাস্টিংয়ের আগে সূচি (আর) = 1,2,3,4 এ স্ট্রিং সূচক ব্যবহার করে ইনপুট 1 + 2345 + 12345, 12 + 345 + 12345, 123 + 45 + 12345, 1234 + 5 + 12345 কে যোগ করে , এবং 12345 * 2 এ যুক্ত হয়

বিশেষ ধন্যবাদ:

-14 বাইটস @ জোনাথন অ্যালেন

-1 বাইট @ovs

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


টিআইও ভুল কোডের লিঙ্ক করে। ( হয় ) এ (len(n)+1)গল্ফ করা যায় এবং তারপরে এটি ব্যবহার করে অন্য একটি বাইট সংরক্ষণ করতে পারে । তারপরে আপনি এটিকে সমস্ত বেনামে ফাংশন করতে পারেন: (by৪ বাইট)-~len(n)~x-1-x-i(n)*~len(n)lambda n,i=int:sum(i(n[:r])+i(n[r:])for r in range(1,len(n)))-i(n)*~len(n)
জোনাথন অ্যালান



আমি আপনার টিও লিঙ্কটি স্থির করেছি।
মিঃ এক্সকোডার

3

জাপট , 15 11 বাইট

-শ্যাগিজিকে ধন্যবাদ -4 বাইট।

¬£iYç
cUz)x

স্ট্রিং হিসাবে ইনপুট নেয়।

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

ব্যাখ্যা

£

নিম্নলিখিত ফাংশন ¬দ্বারা ইনপুট অ্যারে বিভক্ত করুন ( ) এবং ম্যাপ করুন ( £) যেখানে ওয়াই সূচক।
["1", "2", "3"]

iYç

শুরুর দিকে Yস্পেস ( ç) (োকানো () সহ ইনপুট মান ( অন্তর্ভুক্ত i)। এই নির্ধারিত হয় U
["123", " 123", " 123"]

cUz1)x

নিজের সাথে এটি 90 ° ডান ( 1সময়) ঘোরান Con তারপরে যোগফল ( x)।
["123", " 123", " 123", " 1", " 12", "123", "23 ", "1 "]-> 531


ঠিক কীভাবে আমি এটি করার চেষ্টা করছিলাম, তবে আমি বেশিরভাগভাবে সেখানে যেতে পারিনি, কোনও কারণে - দুর্দান্তভাবে সম্পন্ন হয়েছে :) এখানে একটি 13 বাইট সংস্করণ রয়েছে।
ঝাঁকুনি


@ শেগি আশ্চর্যজনক, আমি জানতাম যে প্রতিটি লাইনে ফাঁকা স্থানগুলি আরও ছোট করার উপায় ছিল be ধন্যবাদ!
জাস্টিন মেরিনার

3

জাপট , ৩১ 18 বাইট

-13 বাইট ধন্যবাদ @ ETH প্রডাকশনগুলিতে

এই পদ্ধতিটি জাপট ব্যবহার করে ভাল কাজ করে না। জাস্টিনের সমাধান আরও ভাল।

[U*Ål U¬£tYÃUå+]xx

ব্যাখ্যা:

[U*Ål U¬£tYÃUå+]xx
[              ]    // Create a new array
 U*Ål               // Push: Input * Input.slice(1).length()
                    // Push:
      U¬            //   Input, split into chars
        £tY         //   Map; At each char: .substr(Index)
            Uå+     // Push: Cumulative reduce Input; with addition
                xx  // Sum all the items, twice

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


3
এটাই, আমি এর জন্য একটি শর্টকাট যুক্ত করছি Ul : পি
ইটিএইচ প্রডাকশনগুলি

হুম ... Uফাংশনে আপনার কোনও প্রয়োজন নেই , এবং অ্যারের মাঝারি আইটেমটি ঘনীভূত করা যেতে পারে Uå+ x, যা আমি মনে করি আপনাকে 23 বাইটে নামিয়ে আনছে।
ETH প্রোডাকশনগুলি

@ ইথ প্রডাকশন ধন্যবাদ! অ্যারে আইটেমগুলি পুনরায় সাজিয়ে আমি এটি অন্য একটি বাইটে নামিয়েছিলাম।
অলিভার

আপনি কি পরিবর্তন mx xকরতে পারেন xx? :-)
ইটিএইচ প্রোডাকশনগুলি

@ ইথ প্রডাকশনগুলি আমি নিশ্চিত, আবারও ধন্যবাদ জানাতে পারি :)
অলিভার

2

রুবি , 61 55 + 1 = 56 বাইট

ব্যবহার করে -nপতাকা । এসটিডিএন থেকে ইনপুট।

p (1..~/$/).sum{|i|[$_[i,~/$/],$_[0,i],$_].sum &:to_i}

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


ইনপুট জন্য 102033আপনার প্রোগ্রাম প্রিন্ট করুন 728714যখন সঠিক মান হয় 729702

NOOOO! আপনি নিখুঁত প্রতিনিধিত্ব CURSE! (বিআরবি ফিক্সিং, 02033বিষয়টি ছিল)
মান কালি

আমি অনুমান করেছি যে অষ্টাল সংখ্যাগুলি সমস্যা, তবে আমি নিশ্চিত ছিলাম না (বিটিডব্লিউ আমি রুবি জানি না)। স্পষ্ট করার জন্য ধন্যবাদ :)

@ দ্য পাইরেটবে কোন সমস্যা নেই; আমি ইতিমধ্যে একটি সংক্ষিপ্ত, বিকল্প সমাধান নিয়ে কাজ করছিলাম যা স্ট্রিং ইনপুট নিয়েছিল, এমনকি প্রয়োজনীয় সংশোধনগুলি নিয়েও আমি আসলে বাইটগুলি সঞ্চয় করে শেষ করেছি :)
মান কালি

2

জাভাস্ক্রিপ্ট, 77 74 বাইট

মান কালি ধন্যবাদ 3 বাইট সংরক্ষণ করা

f=a=>[...a+a].map((_,b)=>a-=-z.substr((b-=n)>0?b:0,b+n),a*=n=(z=a).length)|a

console.log(f('123'));
console.log(f('101'));
console.log(f('12'));
console.log(f('1234567'));
console.log(f('102033'));


1

পাইথ , 20 19 বাইট

আমার বর্তমান উপসর্গ পদ্ধতির (আশা করি আরও গল্ফ হবে)।

+*tlQsQssM+_M.__Q._

স্যুট পরীক্ষা করুন বা একই বাইট গণনা সহ বিকল্প পদ্ধতির চেষ্টা করুন

ব্যাখ্যা

+*tlQsQssM+_M.__Q._  - Full program that reads a String from STDIN, with implicit input.

  tlQ                - Length of the input - 1.
     sQ              - The input converted to an integer.
 *                   - Product of the above two elements. We will call this P.
                 ._  - Prefixes of the input.
          +          - Concatenated with:
           _M.__Q    - The prefixes of the reversed input, reversed.
        sM           - Convert each to an integer.
       s             - Sum.
+                    - Addition of the product P and the sum above.

ধারণাটি আরও ভালভাবে বুঝতে, আমরা একটি উদাহরণ নেব, বলুন "123"

  • আমরা প্রথমে ইনপুটটির উপসর্গগুলি পাই। এরাই ['1', '12', '123']

  • তারপরে, আমরা বিপরীত ইনপুটটির উপসর্গগুলি পেয়েছি, যেমন: ['3', '32', '321']এবং প্রতিটি বিপরীত করে, তাই আমরা পাই ['3', '23', '123']

  • আমরা দুটি তালিকাকে একত্রে পরিণত করি এবং প্রতিটি উপাদানকে একটি পূর্ণসংখ্যায় রূপান্তর করি, তাই আমরা পাই [3, 23, 123, 1, 12, 123]

  • তালিকা সংক্ষিপ্ত করে, ফলাফল 285

  • পণ্যটি Pইনপুটটির দৈর্ঘ্য - 1 (অর্থাত্ 2) এর পূর্ণসংখ্যা উপস্থাপনা ( 2 * 123 = 246) এর দ্বারা গুণিত হয় ।

  • শেষ পর্যন্ত, আমরা দুটি ফলাফলের সংক্ষিপ্ত: 285 + 246তাই আমরা পেয়েছি 531, যা সঠিক ফলাফল।


পাইথ , 20 বাইট

+*hlQsQsm+s>Qds<QdtU

পরীক্ষা স্যুট.

ব্যাখ্যা

আরও গল্ফ করার পরে আসার ব্যাখ্যা। আমি এই মুহূর্তে আরও গল্ফ সফল করতে পারেনি (যদিও আমার ধারণা আছে)।

+*hlQsQsm+s>Qds<QdtUQ  - Full program. Reads from STDIN. Q means input, and is implicit at the end.

  hlQ                  - Length of the input + 1.
     sQ                - The input converted to an integer.
 *                     - Multiply the above. We'll call the result P.
        m         tUQ  - Map over [1...length of the input)
          s>Qd         - input[currentItem:] casted to an integer.
              s<Qd     - input[:currentItem] casted to an integer.
         +             - Sum the above.
       s               - Sum the list.
+                      - Add the sum of the list and P.

1

কিউ / কেডিবি +, 34 বাইট

সমাধান:

{sum"J"$((c#c),c-(!)2*c:(#)x)#\:x}

উদাহরণ:

q){sum"J"$((c#c),c-(!)2*c:(#)x)#\:x}"1234567"
10288049
q){sum"J"$((c#c),c-(!)2*c:(#)x)#\:x}"123"    
531
q){sum"J"$((c#c),c-(!)2*c:(#)x)#\:x}"101"    
417
q){sum"J"$((c#c),c-(!)2*c:(#)x)#\:x}"12"     
39

ব্যাখ্যা:

{sum"J"$((c#c),c-til 2*c:count x)#\:x} / ungolfed
{                                    } / lambda function
                                    x  / implicit input
                                 #\:   / apply take (#) to each-left element with the right element
        (                       )      / the left element
                       c:count x       / count length and save in variable c
                     2*                / multiply by 2 (e.g. 6)
                 til                   / range, so 0 1 2 3 4 5
               c-                      / vector subtraction, so 3 2 1 0 -1 -2
         (   )                         / do this together
          c#c                          / 3 take 3, so 3 3 3
              ,                        / join, so 3 3 3 3 2 1 0 - 1 -2          
    "J"$                               / cast this "123", "123", "123" .. "23" to longs
 sum                                   / sum them up and return result


1

সুইফট 3 , 213 বাইট

func f(n:String){print((n.characters.count-1)*Int(n)!+(0..<n.characters.count).map{r in Int(n[n.index(n.startIndex,offsetBy:r)..<n.endIndex])!+Int(n[n.startIndex..<n.index(n.endIndex,offsetBy:-r)])!}.reduce(0,+))}

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

নমুনা রান

ইনপুট:

চ (ঢ: "123")
চ (ঢ: "101")
চ (ঢ: "1234567")

আউটপুট:

531
417
10288049

1

জেলি , 12 বাইট

LḶṚ⁶ẋ;€µ;ZVS

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

স্ট্রিং হিসাবে ইনপুট নেয়। "সমান্তরাল" কে অক্ষরের ম্যাট্রিক্স হিসাবে তৈরি করে, তারপর সংখ্যার যোগফল পেতে প্রতিটি সারি এবং কলামকে মূল্যায়ন করে।

ব্যাখ্যা

LḶṚ⁶ẋ;€µ;ZVS  Input: string S
L             Length
 Ḷ            Lowered range - [0, 1, ..., len(S)-1]
  Ṛ           Reverse
   ⁶          The char ' ' (space)
    ẋ         Create that many characters of each in the range
     ;€       Prepend each to S
       µ      Begin a new monadic chain
        ;     Concatenate with
         Z    Transpose
          V   Eval each string
           S  Sum

1

সি (জিসিসি) ,95 8481 বাইট (78 + -lmসংকলক পতাকা)

ওহে! এটি আমার প্রথম জমা, আমি আশা করি আমি কোনও নিয়ম ভঙ্গ করি না।

g,o,l;f(char*s){l=atoi(s);while(s[o++])g+=l/pow(10,o)+atoi(s+o);return g+l*o;}

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

সতর্কবাণী ব্যতিরেকে অবহেলিত:

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int g,o,l;

int f(char *s){
  l = atoi(s);

  while(s[o++]) {
    g+=l/pow(10,o)+atoi(s+o);
  }

  return g+l*o;
}

int main(void){
  printf("%d\n",f("1234567"));
  return 0;
}

আমার কাছে বৈধ বলে মনে হচ্ছে :)
Okx

হুম, -lmগণিতের ক্রিয়াকলাপগুলির জন্য কেবলমাত্র কয়েকটি সি রানটাইম যেমন যেমন প্রয়োজন glibc। সংকলন উদাহরণস্বরূপ MinGW (মাইক্রোসফ্ট ব্যবহার করে msvcrt.dll) এর সাথে, এটির প্রয়োজন হবে না। সুতরাং নিশ্চিত যে এটি এখানে যুক্ত করা প্রয়োজন? যাইহোক, আপনি যদি এটি যুক্ত করেন তবে এটি 3 বাইট তৈরি করতে পারে;)
ফেলিক্স পামেন

দুর্ভাগ্যক্রমে, জিসিসি সহ ফাংশনের -lmজন্য প্রয়োজন pow()। আমি এটি ছাড়া কাজ করার চেষ্টা করেছি তবে 6 বাইটের কম (পাউ + কম্পাইলার পতাকা) ব্যবহার করে কোনও সমাধান খুঁজে পাচ্ছি না। কীভাবে পতাকাগুলিকে কীভাবে বিভক্ত করা যাবে সে সম্পর্কে আমি কোনও নিয়ম খুঁজে পাইনি এবং আমি জানি যে আমি এই সম্পর্কে একটি ভুল ধারণা তৈরি করেছি- চরিত্রটিকে গণনা না করা । আমি এখনই একটি +1 বাইট যুক্ত করছি।
স্কটনেট

-lmমূল লাইব্রেরিতে গণিতের ক্রিয়াকলাপগুলি অন্তর্ভুক্ত করে না gccতবে এটি দ্বারা প্রয়োজন হয় না glibcmsvcrt.dllনা করে gccকাজ করে উইন্ডোতে কম্পাইল করে -lm। এটি নিটপিকিং এবং এটি সম্পর্কে বিধিগুলি আসলে কী বলবে আমি পুরোপুরি নিশ্চিত নই।
ফেলিক্স পামেন 13 ই

শীর্ষস্থানীয়দের জন্য ধন্যবাদ :) আমি আপনার প্রস্তাবটি চেষ্টা করতে পারিনি এবং
টিওও

1

জাভা 8, 147 137 126 116 114 বাইট

n->{Integer l=(n+"").length(),r=n*l,i=0;for(;++i<l*2;)r+=l.valueOf((n+"").substring(i>l?i-l:0,i<l?i:l));return r;}

-13 বাইট (137 → 126 এবং 116 → 114) @ অলিভিগ্রগ্রোয়ারকে ধন্যবাদ ।

ব্যাখ্যা:

এখানে চেষ্টা করুন।

n->{                          // Method with integer as parameter and return-type
  Integer l=(n+"").length(),  //  Length of the input integer
      r=n*l,                  //  Result-integer (starting at `n*l`)
      i=0;                    //  Index-integer (starting at 0)
  for(;++i<l*2;               //  Loop from 0 through two times `l` (exclusive)
    r+=                       //   Add to the result-integer sum:
       l.valueOf((n+"").substring(
                              //    Substring of input, converted to integer:
        i>l?                  //     If `i` is larger than `l`:
         i-l                  //      Substring starting at `i-l`
        :                     //     Else:
         0,                   //      Substring starting at 0
        i<l?                  //     If `i` is smaller than `l`:
         i                    //      Substring ending at `i` (exclusive)
        :                     //     Else:
         l)                   //      Substring ending at `l` (exclusive)
  );                          //  End of loop
  return r;                   //  Return resulting sum
}                             // End of method

1
114 বাইট: n->{Integer l=(n+"").length(),s=n*l,i=0;for(;++i<l*2;)s+=l.valueOf((n+"").substring(l<i?i-l:0,i<l?i:l));return s;}। ব্যয়বহুলগুলিতে কল সংখ্যা কমিয়ে আনতে এটি সর্বনিম্ন উইন্ডো সহ স্লাইডিং উইন্ডোnew Integer(....substring(...))
অলিভিয়ের

1
@ OlivierGrégoire ধন্যবাদ, এবং এমনকি পরিবর্তন করে আরো কিছু সংক্ষিপ্ত করতে Math.max(0,i-l)করতে 0>i-l?0:i-lএবং Math.min(i,l)করতে i>l?l:i। এখনই এটি সংশোধন করা হচ্ছে। আহ, আমি 126 বাইট উত্তর অনুলিপি করার পরে আপনি আপনার মন্তব্য সম্পাদনা করেছি। ;)
কেভিন ক্রুইজসেন

হ্যাঁ, সম্পাদনার জন্য দুঃখিত, তবে আমি এটি পরীক্ষা করে দেখিনি;)
অলিভিয়ার

1

আর , 168 162 103 বাইট

সি () ব্যবহার না করে -6 বাইট

-59 বাইটস @ জিউজ্পে ধন্যবাদ

function(n){k=nchar(n)
a=k*strtoi(n)
for(i in 1:k)for(j in i:k)a=a+(i==1|j==k)*strtoi(substr(n,i,j))
a}

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

স্ট্রিং হিসাবে ইনপুট নেয়।

আমি একেবারে নিশ্চিত যে উন্নতি করার দরকার আছে, প্রাথমিকভাবে আর এর শক্তির যে কোনওটি কাজে লাগাতে ... তবে চ্যালেঞ্জের মধ্যে যা মূলত ম্যানিপকে স্ট্রিং করে, আমি কীভাবে তা দেখতে লড়াই করছি।

সম্পাদনা করুন: আমি এখন খারাপ ধারণা নিয়ে পুনরাবৃত্তি করছি না তার চেয়ে অনেক বেশি ভাল!



@ জিউসেপ আহ আহ! যখন আমি এখনও পূর্ণসংখ্যার ইনপুট ব্যবহার করছিলাম তখন থেকে এটি প্রচুর অপচয় করা স্থান ছিল। আমি স্ট্রটোই (সাবস্ট্রাস্ট ()) পথটি পছন্দ করি এবং (ক | খ) কৌশলটি আমার চেয়ে বেশি স্মার্ট। উন্নতির জন্য ধন্যবাদ! এই সময়ে এটি প্রায় একটি ভিন্ন উত্তর ...
অপরাধমূলকভাবে

যখন আপনি অন্য পদ্ধতির যুক্ত হন এটি ঘটে! আমি নিজে লুপগুলি বের করতে পারি না, তবে আমি মনে করি আপনি সম্ভবত সূচকগুলি substrলুপিংয়ের পরিবর্তে পরিষ্কারভাবে তৈরি করতে সক্ষম হবেন যা কয়েক বাইট সংরক্ষণ করতে পারে।
জিউসেপে


0

গণিত, 77 বাইট

(s=IntegerDigits@#;t=Length@s;Tr[FromDigits/@Table[s~Take~i,{i,-t,t}]]+t#-#)&
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.