রাউন্ডিংয়ের সময় আমাকে 1 যোগ করার আগে কতটি দশমিক হয়?


10

আপনি যখন কোনও সংখ্যার বৃত্তাকার হন, পরবর্তী >= 5অঙ্কটি যদি যোগ করেন তবে 1 যোগ করুন উদাহরণস্বরূপ:

3.1415926535 rounded to 1dp is 3.1
3.1415926535 rounded to 4dp is 3.1416    <-- Note the 5 changed to 6
3.1415926535 rounded to 5dp is 3.14159

3.1415926535 rounded to 9dp is 3.141592654  <-- Note the 3 changed to 4

আপনার প্রতিদ্বন্দ্বিতা হ'ল ইনপুট হিসাবে একটি পূর্ণসংখ্যা প্রাপ্ত এবং দশমিক জায়গাগুলির সংখ্যা আউটপুট করা যার আগে আপনাকে সংখ্যার বর্গমূল করতে হবে - অর্থাত্ সংখ্যার সংখ্যার আগে দশমিক জায়গাগুলির সংখ্যা >= 5occurs

পূর্ণসংখ্যা 0 এবং 100,000 এর মধ্যে থাকবে তবে 59752 এর প্রান্তের ক্ষেত্রে আপনাকে 17 দশমিক পয়েন্ট সমর্থন করতে হবে (17 তম পরীক্ষা করতে)।

আপনি যদি প্রোগ্রামিং ল্যাঙ্গুয়েজ দশমিক পয়েন্টের সংখ্যা পরিবর্তন করতে না পারেন, আপনি একটি "প্রদর্শন করতে পারেন?" ব্যবহারকারীকে বার্তা।

উদাহরণ:

Input    Root                     Output

    5 -> 2.23 606797749979     -> 2
   41 -> 6.40312423 743284     -> 8      (Largest gap under 100)
  596 -> 24.4131112314 674     -> 10     (Largest gap under 1000)
59752 -> 244.44222221212112029 -> 16     (Largest gap under 100000)

নিখুঁত স্কোয়ারগুলিতে যা চান তা করুন।

এটি তাই সংক্ষিপ্ততম কোডের জয়।


আগ্রহী যে কারও জন্য, 310,617 সংখ্যাটি 1,000,000 এর নীচে সবচেয়ে বড় এবং আপনার কোনও অঙ্কে পৌঁছানোর আগে 18 টি রয়েছে >= 5


আমাদের সর্বোচ্চ কত দশমিক স্থান সমর্থন করতে হবে? - অসীম নির্ভুলতার জন্য কোনও ভাষা সঞ্চয় করে না।
নীল

অনিশ্চিত কেন, তবে আমি এসকিউআরটি (59752) এর জন্য 17 টি সংখ্যা পাই (দুটি ভিন্ন ভাষায়)। অন্য ফলাফলগুলি সঠিকভাবে বেরিয়ে আসে।
জোনাথন লিচ-পেপিন

@ জোনাথনলিচ-পেপিন আপনি কোনও কারণে শেষ সংখ্যাটি অন্তর্ভুক্ত করছেন? বা আপনার প্রোগ্রাম পর্যাপ্ত দশমিক স্থান সমর্থন করে না।
টিম

এটির তুলনায় 5 টির চেয়ে বড় কোনও সংখ্যা কখনই বড় হবে না উদাহরণস্বরূপ আমার প্রোগ্রামটি -1
ব্লু

@ মিডিফিশ ভাল
টিম

উত্তর:



2

পাইথ, 13 বাইট

f<5e@=*QC\d2Z

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

Qইনপুট সমান দিয়ে শুরু করুন। প্রতিটি সময় পদক্ষেপ, সংখ্যাবৃদ্ধি এ Q100 দ্বারা, হিসাবে গণনা করা chr('d')। এর বর্গমূল নিন। এই মোডটি নিন 10. ​​ফলাফল যদি এর চেয়ে বেশি হয় তবে 5শেষ করুন। সমাপ্ত হতে 0 টি সূচকযুক্ত পুনরাবৃত্তির সংখ্যা মুদ্রণ করুন।

বিস্তারিত:

f<5e@=*QC\d2Z
                   Q = eval(input())
f           Z      Filter for the first truthy result over the infinite sequence
                   starting at Z (= 0)
     =*Q           Q *=
        C\d             chr('d') (= 100)
                   ---------------------
    @  Q   2          Q ^ (1/2)
   e                            % 10
 <5               5 <

1

সিজেম, 29 26 28 বাইট

rimqs_'.+'.#)>{'5<}%0#]W'?er

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

একটি "রাখে?" যদি সংখ্যাটি উপস্থিত না হয় যা বৃত্তাকার করা যায় (নিখুঁত বর্গক্ষেত্র বা খুব দীর্ঘ)।


1

পাইথ, 22 বাইট

J`%@Q2 1x.e<\4@Jbr2lJ1

ব্যাখ্যা

                       - Autoassign Q to evaluated input
   @Q2                 - Get the square root of Q
J`%    1               - Get the stuff after the decimal point and put it in a string. Store in J
         .e      r2lJ  - Create a range between 2 and the length of the string (forget about the 0. bit) and enumerate over it
              @Jb      - Get the current decimal place
           <\4         - Is it bigger than 4
        x            1 - Find the position of the first True value

আমি একেবারে নিশ্চিত যে এটি গল্ফ করা যেতে পারে। যদি ইনপুটটিতে 4 এর চেয়ে বেশি অঙ্ক না থাকে তবে এটি -1 মুদ্রণ করবে। 17dp সমর্থন করে।


1

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

f=a=>(a=/\.(.*?)[5-9]/.exec(Math.sqrt(a)),a?a[1].length:'?')

59752 এর ?জন্য ফেরত দেয় কারণ জাভাস্ক্রিপ্ট কেবল ডাবল স্পষ্টতা ব্যবহার করে।


1

লিনাক্স শেল, 52 বাইট

dc -e'34k?vp'|cut -d. -f2|sed 's/.[5-9\s].*//'|wc -m

আমি বিশুদ্ধ dcসমাধানের চেষ্টা করেছি , তবে ব্যর্থ হয়েছি । যথার্থতা সামঞ্জস্যযোগ্য (প্রথম সংখ্যা)।

যেমন ওপি দয়া করে নির্দিষ্ট করে দিয়েছে যে "আপনি নিখুঁত স্কোয়ারগুলিতে যা করতে চান তা করতে পারেন", এই ক্ষেত্রে এই সমাধানটি এই ক্ষেত্রে 35-এ + নির্ভুলতা +1 প্রদান করে।


1

গণিত 60 বাইট

(Position[Drop@@RealDigits[N[Sqrt@#,99]],x_/;x>4][[1,1]]-1)&

উদাহরণ

(Position[Drop@@RealDigits[N[Sqrt@#, 99]], x_ /; x > 4][[1, 1]] - 1) &[59752]

16


আপনি এর আশেপাশের সাদা স্থান সরিয়ে ফেলতে পারেন Apply
LegionMammal978

ধন্যবাদ। বাইট গণনাটি একই থাকে কারণ আমি সেই জায়গাগুলি গণনা করি নি।
ডেভিডসি

-2

রুবি, 46 বাইট

এটি বৈধ হতে পারে না, কারণ এটি কেবল 16 ডিজিটের সাথে ফিট করে।

p (gets.to_i**0.5).to_s.split('.')[1]=~/[5-9]/

59752 এ আউটপুটটি কী?
টিম

nil, কোনও অঙ্কের অতীত 4 পুরো স্ট্রিংয়ে নেই। এটি রুবি সংস্করণের উপর নির্ভর করে।
মেগাটম

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