ধারাবাহিক ডিজিটাল পণ্যের যোগফলের পুনরাবৃত্তি


13

ধনাত্মক পূর্ণসংখ্যা দেওয়া n( উদাহরণn=1234444999 :)

  • একটানা অঙ্কের রানে পৃথক করুন:
    • [1, 2, 3, 4444, 999]
  • প্রতিটি রানের ডিজিটাল পণ্য নিন।
    • [1, 2, 3, 4*4*4*4, 9*9*9] = [1, 2, 3, 256, 729]
  • যোগফল ...
    • 991
  • এটি একক সংখ্যায় রূপান্তর না করা পর্যন্ত পুনরাবৃত্তি করুন:
    • 1234444999
    • 991
    • 82
    • 10
    • 1
  • শেষ নম্বরটি ফিরুন।

পরীক্ষার কেস

BASE CASES:
0 = 0
...
9 = 9

OTHER CASES:
1234444999                     = 1
222222222222222                = 8
111222333444555666777888999000 = 9
11122233344455566677788899     = 8
1112223334445                  = 6
14536                          = 1
99                             = 9

অনুরোধ করা উদাহরণ:

334455553666333
9+16+625+3+216+27
896
8+9+6
23
2+3
**5**

বিজয়ী?

এটি , সর্বনিম্ন বাইট-কাউন্টটি বিজয়ী।


আন্ন্ন্ন্ন্ন্ন্ন্ন্ন্ন্ননডেন্ড ... এটি স্যান্ডবক্স নয়। বিষ্ঠা। ঠিক আছে, আমি এখন অনেক কিছুই করতে পারি না, দুঃখিত সবাই ._।
ম্যাজিক অক্টোপাস উর্ন

11
পরীক্ষার কেসগুলি করা ভাল হবে যেখানে একই ধরণের ডিজিটগুলি একের পর এক অংশে থাকে না।
xnor

1
আমরা কি অঙ্কের তালিকা হিসাবে ইনপুট নিতে পারি? কিছু ভাষাগুলি উচ্চতর সংখ্যাকে সমর্থন করতে পারে না 11122233344455566677788899
ইটিএইচ প্রোডাকশনস

@ETH প্রোডাকশনগুলি আপনি আপনার ভাষার দ্বারা অনুমোদিত সর্বাধিক পূর্ণসংখ্যার ইনপুট বর্ণনা করতে পারেন এবং আপনি যদি উত্তরটি ব্যাখ্যা করতে পারেন তবে আপনার উত্তরটি বৈধ হতে পারে be
ম্যাজিক অক্টোপাস উর্ন

4
একই অঙ্ক evet 2 টি পৃথক রান, যেমন এতে প্রদর্শিত হবে: 33445555666333?
মিস্টার এক্সকোডার

উত্তর:


7

05 এ বি 1 ই , 7 6 5 বাইট

বাইট সংরক্ষণের জন্য এমিগিনার ধন্যবাদ !

vSγPO

05AB1E এনকোডিং ব্যবহার করে । এটি অনলাইন চেষ্টা করুন!


3
আমি এখনই প্রথমবার লক্ষ্য করেছি যে আপনার অবতারটি একটি ডেজ মেম।
ম্যাজিক অক্টোপাস উর্ন

@ ম্যাজিক অ্যাক্টোপাস উর্ন এবং আপনি আমাকে ঠিক তা খেয়াল করেছেন ...
সকরাটিক ফিনিক্স

আপনি প্রতিস্থাপন করতে পারে gFসঙ্গে v
এমিগানা

@ এমিগনা ওহহ অবশ্যই! ধন্যবাদ! :)
আদনান

5

জেলি, 9 বাইট

DŒgP€SµÐL

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

এখানে কিভাবে এটা কাজ করে:

D  - input as a list of digits
Œg - group runs of equal elements
P€ - the product of each element
S  - the sum of the list
µ  - syntax stuff to separate the left from the right
ÐL - repeat until we get a result twice, then return that result.

পি কেন স্বয়ংক্রিয়ভাবে ভেক্টরাইজ হয় না? এটি অদ্ভুত বলে মনে হচ্ছে ...
ফল 2

না, পি স্বয়ংক্রিয়ভাবে ভেক্টরাইজ করে, তাই আপনার দরকার নেই
ফলটি এসোলং করা

না, পি ভেক্টরাইজ করে না: tio.run/##y0rNyan8/9/l6KT0gOBDWw9P8Pn//78RKgAA
জাকারি

ওহ, আমি দেখতে পাচ্ছি - Œgকেবলমাত্র একটি একক গোষ্ঠী থাকলে সেখানে বেমানান হয়। এর পিছনে যুক্তি কী?
13:52

কোন ক্লু নেই!
জাকারি

5

গণিত, 55 42 বাইট

#//.i_:>Tr[Times@@@Split@IntegerDigits@i]&

@ জংহওয়ান মিন থেকে -13 বাইট । ধন্যবাদ!

যদি কেউ এটিকে এলোমেলো-ডিজিট-জেনারেটর হিসাবে ব্যবহার করতে চায় তবে
এখানে প্রথম 100.000 সংখ্যার তালিকাই

{{1, 17320}, {2, 4873}, {3, 10862}, {4, 11358}, {5, 10853}, {6, 9688}, {7, 11464}, {8, 10878}, { 9, 12704}} বা আপনি জুয়া খেললে
আপনার অর্থ 2 তে রাখবেন না!


5

জাপট , 17 15 13 বাইট

e".+"_¬ò¦ x_×

এটি অনলাইন পরীক্ষা! স্ট্রিং হিসাবে ইনপুট নেয়।

এখনও এই উত্তর দিয়ে সন্তুষ্ট না ...

ব্যাখ্যা

e".+"_  ¬ ò¦  x_  ×
e".+"Z{Zq ò!= xZ{Zr*1}}

e".+"                     Repeatedly replace all matches of /.+/ (the entire string)
     Z{               }   Z with this function:
       Zq                   Split Z into chars.
          ò!=               Partition at inequality; that is, split into runs of equal items.
              xZ{    }      Take the sum of: for each item in Z:
                 Zr*1         the item reduced by multiplication (i.e. the product).
                          This procedure is repeated until the same result is yielded twice.
                          Implicit: output result of last expression

আপনি এটিকে কেবল একটি পূর্ণসংখ্যা হিসাবে গ্রহণ করতে পারেন এবং সর্বাধিক অনুমোদিতযোগ্য ইনপুটটি জানাতে পারেন, দুঃখিত, আমি এই প্রশ্নের জন্য আমার উত্তরটি আমার ডিফল্ট উত্তরে পোস্ট করার পরে পরিবর্তন করেছি।
ম্যাজিক অক্টোপাস উর্ন

@ ম্যাজিক অ্যাক্টপাস ওহ, ওহে, ধন্যবাদ এটি যাইহোক, দুটি বাইট সংরক্ষণ করে ...
ETH প্রোডাকশনগুলি

1
এছাড়াও, x_×মিলিত I'm unsatisfiedআমাকে হাসিয়ে তোলে। ধন্যবাদ;)।
ম্যাজিক অক্টোপাস আরন

আমি ভেবেছিলাম ßএখানে যাওয়ার উপায় হতে পারে। আমি ভৃল ছিলাম! (কমপক্ষে ভোর সাড়ে ৫ টা ', আমি যে বিমানবন্দরে ছিলাম বাসে
শেগি

"এখনও অসন্তুষ্ট নন" ... সুতরাং ... আপনি শেষ পর্যন্ত সন্তুষ্ট?
জাকারি


4

ব্র্যাচল্যাগ , 8 বাইট

Ḋ|ẹḅ×ᵐ+↰

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

ব্যাখ্যা

Ḋ          Input = Output = a digit
 |         Or
  ẹ        Split into a list of digits
   ḅ       Group consecutive equal elements together
    ×ᵐ     Map multiply
      +    Sum
       ↰   Recursive call

আপনি কখনই ব্র্যাক্ল্যাগকে জেলি আউটগল্ফ করার আশা করতে পারবেন না?
এরিক আউটগল্ফার

@ এরিকথ আউটগলফার যখন ব্র্যাচল্যাগ জেলিকে মারধর করে, আমার প্রথম অনুমান যে জেলি উত্তরটি অনুকূল নয়
ফ্যাটালাইজ করুন

আমারও, আমি জেলিতেও এটি করার চেষ্টা করা বাদ দিয়ে। জিনিসটি হ'ল, ভাল, 05AB1E এখনও এটিকে মারধর করে। :)
এরিক আউটগল্ফার

আমরা হব. এটি একটি বাইট, এবং জেলি উত্তর আমার দ্বারা হ্যাঁ, আমি ব্র্যাচ্ল্যাগ জেলিকে পরাজিত করবে বলে আশা করি।
জাকারি


2

পিএইচপি , 113 বাইট

for(;9<$a=&$argn;$a=$s){$s=0;preg_match_all('#(.)\1*#',$argn,$t);foreach($t[0]as$v)$s+=$v[0]**strlen($v);}echo$a;

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


আপনি কি পুরো সময়ের পিএইচপি বিকাশকারী?
ম্যাজিক অক্টোপাস উরন

@ ম্যাজিক অ্যাক্টোপাস ইউর্ন না কয়েক বছরের বেশি সময় ধরে আমার অভিজ্ঞতা নেই
জার্গ হালসারম্যান

2

কাস্তে , 8 বাইট

ωöṁΠgmis

পূর্ণসংখ্যা গ্রহণ করে এবং প্রদান করে। এটি অনলাইন চেষ্টা করুন!

ব্যাখ্যা

বেস 10 সংখ্যার জন্য অন্তর্নির্মিত থাকা ভাল হবে ...

ωöṁΠgmis
ω         Iterate until a fixed point is found
 ö        the composition of the following four functions:
       s   convert to string,
     mi    convert each digit to integer,
    g      group equal adjacent integers,
  ṁΠ       take product of each group and sum the results.

2

জাভাস্ক্রিপ্ট (ES6), 77 73 67 65 বাইট

@ ক্রেইগএয়ার ধন্যবাদ 2 বাইট সংরক্ষণ করা

f=s=>s>9?f(''+eval(s.replace(/(.)\1*/g,s=>'+'+[...s].join`*`))):s

কিভাবে?

ইনপুট গুলি এর সাথে একটি গাণিতিক প্রকাশে রূপান্তরিত হবে:

s.replace(/(.)\1*/g, s => '+' + [...s].join`*`)

উদাহরণস্বরূপ, 1234444999হয়ে যায় +1+2+3+4*4*4*4+9*9*9

আমরা এই অভিব্যক্তিটি মূল্যায়ন করি এবং ফলাফলটি একটি পুনরাবৃত্ত কল করি যতক্ষণ না এটি একক দশমিক অঙ্কে সিদ্ধ হয়।

পরীক্ষার মামলা


9 এর সাথে তুলনা করে আপনি কি কয়েকটি বাইট সংরক্ষণ করতে পারবেন?:f=s=>s>9?f(''+eval(s.replace(/(.)\1*/g,s=>'+'+[...s].join`*`))):s
ক্রেগ আয়রে

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


2

হাস্কেল , 103 70 69 বাইট

import Data.List
until(<10)$sum.map product.group.map(read.pure).show

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


1
আপনি এটি ব্যবহার করে অনেক ছোট করতে পারেন until(<10)। এছাড়াও map(read.pure)আগে স্থানান্তরিত করা যেতে পারে show, যা বন্ধনী সংরক্ষণ করে।
janর্জন জোহানসেন

হ্যাঁ, এটি অনেক ভাল!
বার্তাভেল

1
আপনি $বাইরের বন্ধনীগুলির পরিবর্তে ব্যবহার করতে পারেন ।
janর্জন জোহানসেন

1

আর , 114 104 বাইট

n=scan(,'');while(nchar(n)>1){n=el(strsplit(n,''));b=table(n);n=as.character(sum(strtoi(names(b))^b))};n

স্টিডিন থেকে পড়া; উত্তরটি স্ট্রিং হিসাবে ফিরিয়ে দেয়।

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


আপনি pasteপরিবর্তে ব্যবহার করতে পারে as.character। প্রাক্তন তার ইনপুটটি character;-) টাইপ করে কোরেস করে
ফ্রেডেরিক

1

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

`!UY'^sVtnq

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

ব্যাখ্যা

        % Implicitly grab input as a string
`       % Do...while loop
  !U    % Convert the string to an array of numbers (the digits)
  Y'    % Perform run-length encoding
  ^     % Raise the digits to the power corresponding to the number of times they
        % occurred consecutively
  s     % Sum the result
  V     % Convert to a string
  tn    % Duplicate and determine the number of characters in the string
  q     % Subtract one, causes the loop to continue until it's a single digit
        % Implicit end of do...while loop and display


1

আর, 97 96 বাইট

a=scan(,"");while(nchar(a)>1){a=paste(sum(strtoi((b<-rle(el(strsplit(a,""))))$v)^strtoi(b$l)))}a

আর ব্যবহার করে অন্যান্য উত্তরগুলির চেয়ে সামান্য ভিন্ন পদ্ধতির ।

এই উত্তরটি rleফাংশনটি ব্যবহার করে, যা compute[s] the lengths and values of runs of equal values in a vector

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


1
**এর সমতুল্য^
জিউসেপে

1

ব্রেনল্ফ, 25 বাইট

!L1-Mv[RG(d&*)&+!L1-Mv>]R

ডেনিসকে একবার সর্বশেষ সংস্করণটি টানতে পেয়ে আমি একটি টিআইও লিঙ্ক যুক্ত করব, কারণ (...)লুপের অভ্যন্তরে লোভী অপারেটরগুলি ব্যবহার করে বর্তমানে টিআইও-তে ভাঙ্গা হয়েছে

ব্যাখ্যা

!L1-Mv[RG(d&*)&+!L1-Mv>]R  Implicit input from commandline args
!L1-M                      Push length of input minus 1 to stack2
     v                     Switch to stack2
      [.........!L1-Mv>]   While length of input > 1..
       RG                  Split into digit runs
         (d&*)             Product of digits of each item in stack
              &+           Sum stack
                        R  Return to stack1
                           Implicit output from stack

1

জাপট , 19 বাইট

=ò¦ m¬®×Ãx)<A?U:ßUs

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

ব্যাখ্যা:

=ò¦ m¬®×Ãx)<A?U:ßUs
=                    // Implicit U (input) =
 ò¦                  //   Split the input into an array of consecutive digit runs
    m¬               //   Split each inner array: ["1","22","333"] -> [["1"],["2","2"],["3","3","3"]]
      ®              //   Map; At each item:
       ×             //     Get the product of each run
        Ã            //   }
         x           //   Sum
           <A        // <10
             ?       // If true:
              U      //   return U
               :     // Else:
                ß    //   Run the program again; Pass:
                 Us  //     U, cast to a string
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.