সিরিয়ালযুক্ত পূর্ণসংখ্যার সন্ধান করুন


16

কার্য

এমন একটি প্রোগ্রাম লিখুন যা ইতিবাচক পূর্ণসংখ্যার (ইনপুট হিসাবে) নেবে। এটি তখন থেকে 0প্রতিটি পূর্ণসংখ্যাকে একটিতে সংযোজন করা হবে String, কেবলমাত্র যদি দৈর্ঘ্যের দৈর্ঘ্য অবিরত থাকে continuingString মানের চেয়ে কম হয়।

একটি সিরিয়ালযুক্ত পূর্ণসংখ্যা সম্পূর্ণরূপে গঠিত সংখ্যার সাথে সংযুক্ত সর্বাধিক মান হিসাবে সংজ্ঞায়িত হয় String। "সম্পূর্ণরূপে গঠিত" দ্বারা, পূর্ণসংখ্যার কোনও অনুপস্থিত অঙ্ক থাকা উচিত নয় (যা দৈর্ঘ্যের সীমাবদ্ধতার ক্ষেত্রে ঘটতে পারেString পূরণ করা )।

প্রোগ্রামটির আউটপুটটি তার নিজের, ইতিবাচক ইনপুটটির জন্য ক্রমিক সংখ্যার হওয়া উচিত ।


বিধি

  • এটি কোড গল্ফ, তাই সংক্ষিপ্ত উত্তর (বাইটে) জিতেছে!
  • ইনপুট সর্বদা ইতিবাচক থাকবে।
  • আউটপুট অবশ্যই বেস -10 (দশমিক) এর মধ্যে একটি পূর্ণসংখ্যা হতে হবে।
  • প্রোগ্রামটি অবশ্যই 0-সূচিযুক্ত হতে হবে।

উদাহরণ ইনপুট | আউটপুট

   5 | 4   (0 1 2 3 4              - Length of 5)
  11 | 9   (0 1 2 3 4 5 6 7 8 9 1  - Length of 11)
  12 | 10  (0 1 2 3 4 5 6 7 8 9 10 - Length of 12)
1024 | 377 (0 1 2 3 4 5 6 7 8 ...  - Length of 1024)

মন্তব্য)

  • আপনার যদি কোনও প্রশ্ন থাকে (বা আমাকে আরও উদাহরণ সরবরাহ করতে চান), দয়া করে মন্তব্য করুন!
  • অনুপ্রেরণা: /programming/45034478/how-do-i-calc ুলে-

6
প্রস্তাবিত পরীক্ষার কেস:11
রড

@ রড এটি যুক্ত করেছেন, আশা করি এটি বুঝতে সহজতর হয়েছে!
জ্যাকব জি।

উদাহরণগুলিতে স্ট্রিংয়ে উদ্ধৃতি চিহ্ন যুক্ত করা এটি বুঝতে পারে যে এটি একটি স্ট্রিং easier
isaacg

তাহলে চ্যাম্পারনেউন ধ্রুবকের প্রথম N-1অঙ্কগুলি , একটি চাপ দেওয়া সহ ? 0
মেগো

উত্তর:


8

জাভাস্ক্রিপ্ট (ES6), 40 37 বাইট

f=(n,i=s='0')=>(s+=++i)[n]?i-1:f(n,i)
<input type=number min=1 value=1 oninput=o.textContent=f(this.value)><pre id=o>0

সম্পাদনা করুন: @ আরনল্ডের কিছু সহায়তায় 3 বাইট সংরক্ষণ করা হয়েছে




5

জাপট , 13 বাইট

1n@P±X l >U}a

এটি অনলাইন পরীক্ষা!

ব্যাখ্যা

1n@ P± X l >U}a
1nX{P+=X l >U}a
                   Implicit: U = input integer, P = empty string
  X{         }a    Return the first integer X in [0, 1, 2, ...] that returns a truthy value:
    P+=X             Append X to P.
         l >U        Return P.length > U.
                   This returns the first integer that can't fit into the U-char string.
1n                 Subtract 1 from the result.
                   Implicit: output result of last expression




4

জেলি ,  11 10  9 বাইট

RD;\L€<⁸S

একটি মোনাডিক লিঙ্কটি ইতিবাচক পূর্ণসংখ্যার গ্রহণ করে এবং অ-নেতিবাচক পূর্ণসংখ্যাকে প্রত্যাবর্তন করে।

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

কিভাবে?

সম্পাদনা ...

RD;\L€<⁸S - link: number n
R         - range -> [1,2,...10,11,...,n-1]
 D        - convert to decimal (vectorises) -> [[1],[2],...,[1,0],[1,1],...D(n-1)]
   \      - cumulative reduce by:
  ;       -   concatenation -> prefixes i.e.: [[1],[1,2],...,[1,2,...,1,0],[1,2,...,1,0,1,1],[1,2,...,1,0,1,1,...Flattened(D(n))]]
    L€    - length of €ach -> [1,2,3,...,11,13,...,length([1,2,...,1,0,1,1,...Flattened(D(n))])]
       ⁸  - chain's left argument, n
      <   - less than? (vectorises)
        S - sum (yields the number of prefixes that are less than or equal in length to n)
          -   Note: `0` is excluded from the range and all the prefixes, but including
          -         it would mean comparing to n+1 AND decrementing at the end (for a
          -         total cost of a byte)

4

আমি এটা ভালোবাসি! তুলনা হিসাবে স্লাইসিং ব্যবহার করা উজ্জ্বল।
isaacg

@ আইস্যাকগ এটি পাইথের সুন্দর গল্ফ বৈশিষ্ট্যগুলির একটি (অন)। আমি যখন নীলের উত্তরটি দেখেছি (ধারণাটি টুকরো টুকরো করার পরিবর্তে, তবে একই ধারণা)। < num seqখুব সহায়ক ছিল।
পুরক্কা কুডারী

3

পার্ল 6 , 36 বাইট

{(0...^{([~] 0..$^a).comb>$_})[*-1]}

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

  • 0 ...^ {...}শূন্য থেকে সংখ্যার ক্রম হ'ল সংখ্যার চেয়ে কম পর্যন্ত যার জন্য বন্ধনীগুলিতে কোড ব্লকটি সত্য হয়। ( ...ক্যারেট ব্যতীত প্রথম নম্বরটি ফিরিয়ে আনবে যার জন্য ব্লকটি সত্য হয়েছে returned)
  • [~] 0 .. $^a0বর্তমান সংখ্যা পর্যন্ত সংখ্যার সংমিশ্রণ $^a(কোড ব্লকের প্যারামিটার)।
  • .combসংক্ষিপ্ত স্ট্রিংয়ের সমস্ত অক্ষরের (অঙ্ক) তালিকা রয়েছে। একটি সংখ্যা হিসাবে ব্যাখ্যা করা, এটি স্ট্রিংয়ের দৈর্ঘ্যের মূল্যায়ন করে। .charsএখানে ব্যবহার করা আরও স্বাভাবিক হবে, যেহেতু এটি সরাসরি স্ট্রিংয়ের দৈর্ঘ্যের সাথে মূল্যায়ন করে তবে নামটি একটি অক্ষর দীর্ঘতর।
  • $_ শীর্ষ স্তরের ফাংশনের যুক্তি is
  • [*-1] উত্পন্ন তালিকার শেষ উপাদানটি নির্বাচন করে।

2

কিউবিআইসি , 34 বাইট

{A=!p$~_lB+A|>:|_xp-1|\B=B+A]p=p+1

ব্যাখ্যা

{           DO infinitely
A=!p$       Set A$ to p cast to num
            Note that p starts out as 0.
~      >:   IF the input number is exceeded by
 _l   |     the length of
   B+A      A$ and B$ combined
_xp-1|      THEN QUIT, printing the last int successfully added to B$
            The _X operator quits, (possibly) printing something if followed by a-zA-Z
            _x is slightly different, it prints the expression between the operator _x and |
\B=B+A      ELSE add A$ to B$
]           END IF
p=p+1       Raise p, and rerun


2

জে, 26 বাইট

(>i:1:)([:+/\[:>.10^.1+i.)

((>i:1:)([:+/\[:>.10^.1+i.))"0 ] 5 11 12 1024 2000 20000 100000 1000000
4 9 10 377 702 5276 22221 185184




0

জাভা 8, 64 বাইট

n->{int i=0;for(String t="0";;t+=++i)if(t.length()>n)return~-i;}

বা একই বাইট-গণনা সহ সামান্য বিকল্প:

n->{int i=0;for(String t="";;t+=i++)if(t.length()>n)return i-2;}
n->{int i=-1;for(String t="";;t+=++i)if(t.length()>n)return~-i;}

ব্যাখ্যা:

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

n->{                  // Method with integer as both parameter and return-type
  int i=0;            //  Integer `i`, starting at 0
  for(String t="0";   //  String, starting at "0"
      ;               //  Loop indefinitely
       t+=++i)        //    After every iteration: append the String with `i+1`
                      //    by first increasing `i` by 1 with `++i`
    if(t.length()>n)  //   If the length of the String is larger than the input:
      return~-i;      //    Return `i-1`
                      //  End of loop (implicit / single-line body)
}                     // End of method


0

রুবি, 44 বাইট

কেভিন ক্রুইজসেনের জাভা উত্তর দ্বারা অনুপ্রাণিত। -4 বাইটস ধন্যবাদ জি বি।

->n{i,t=0,'';t+="#{i+=1}"while t.size<n;i-1}

(i + = 1; টি + = i.to_s) টি + = "# {i + = 1}" এর সমান, কেবলমাত্র 4 বাইট দীর্ঘ
জিবি

এবং যদি আপনি এটি করেন, আপনার আর ভেরিয়েবল টি দরকার নেই, আপনি n থেকে আকারটি বিয়োগ করতে পারেন এবং তারপরে 0 এর সাথে তুলনা করতে পারেন
জিবি

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.