গল্ফড দশমিক ভগ্নাংশ


15

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

ইনপুট হিসাবে 2 পূর্ণসংখ্যা নিন , প্রথমটি হল অঙ্ক, দ্বিতীয়টি হ'ল ডিনোমিনেটর।

উদাহরণ:

n  d   output
-----  ------
0 13:  0.00
1 13:  0.07
2 13:  0.1
3 13:  0.2
4 13:  0.30
5 13:  0.38

প্রভৃতি

3/1313 এর ডিনোমিনেটরের একমাত্র ভগ্নাংশ যা শুরু হয় 0.2, সুতরাং আর কোনও অঙ্কের প্রয়োজন হয় না। 4/13এবং 5/13উভয় দিয়েই শুরু হয় 0.3, সুতরাং তাদের মধ্যে পার্থক্য করার জন্য অন্য একটি অঙ্কের প্রয়োজন।

দশমিক পয়েন্টের আগে আপনি শূন্যের সাথে বা ছাড়াই 1-এর বেশি এবং 1 এরও কম সংখ্যক আউটপুট দিতে পারেন, যতক্ষণ না আউটপুট সুসংগত হয়, 0.5এবং .5একই সংখ্যা এবং উভয়ই বৈধ। অন্য কোনও শীর্ষস্থানীয় জিরো অনুমোদিত নয়। ট্রেলিং শূন্যগুলি অবশ্যই যদি অন্য মান থেকে আউটপুটকে পৃথক করতে হয় তবে তাদের অবশ্যই দেখানো হবে।

আপনি কোনও সংখ্যা শূন্য থেকে দূরে নাও করতে পারেন; তাদের অবশ্যই কেটে ফেলা উচিত। কোনও নেতৃস্থানীয় বা পিছনে স্থান নেই। Optionচ্ছিকভাবে একটি একক ট্রেলিং নিউলাইন থাকতে পারে।

আরও পরীক্ষার মান:

   n    d   output
----------  ------
   0    1:   0 (this 0 may not be removed because there's no decimal point)
   5    1:   5
   0    3:   0.0 (or .0)
   4    3:   1.3
   5    3:   1.6
  10    8:   1.2
  11    8:   1.3
  12    8:   1.5
-496  -38:  13.05
 458  -73:  -6.27
  70  106:   0.660 (or .660)
 255  123:   2.07
 256 -123:  -2.081
-257 -123:   2.089
-258  123:  -2.09
 258 -152:  -1.697
-259  152:  -1.70
 260  152:   1.710
 272  195:   1.39
 380  247:   1.538
 455 -455:  -1.000
 -44  891:  -0.049 (or -.049)
 123 1234:   0.099 (or .099)

প্রতিটি ক্ষেত্রে, আউটপুট এবং ডিনোমিনেটর স্বতন্ত্রভাবে অঙ্কের কাজ করতে যথেষ্ট।

উত্তর:


1

পার্ল, 77 বাইট

#!perl -p
$%++while/ /<grep{!index$_/$',$\=$`/$'.($`%$'?0:n).0 x$%&'?'x$%}$`-2..$`+2}{

শেবাংকে এক হিসাবে গণনা করা, স্টিডিনের কাছ থেকে ইনপুট নেওয়া হয়।

নমুনা ব্যবহার

$ echo 0 3 | perl golf-decimals.pl
0.0

$ echo 4 3 | perl golf-decimals.pl
1.3

$ echo 11 8 | perl golf-decimals.pl
1.3

$ echo -496 -38 | perl golf-decimals.pl
13.05

$ echo 458 -73 | perl golf-decimals.pl
-6.27

$ echo -44 891 | perl golf-decimals.pl
-0.049

1

পাইথ, 37 বাইট

AQJ+`cGHK*20\0<Jf!}<JTm<+`dKTcRH,tGhG

এমন একটি প্রোগ্রাম যা ফর্মটিতে ইনপুট নেয় numerator,denominatorএবং ফলাফল মুদ্রণ করে।

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

[ব্যাখ্যা পরে আসছে]


1

জাভাস্ক্রিপ্ট (ES7), 118 93 90 বাইট

f=(a,b,i=0)=>(v=(p=n=>((n/b*10**i|0)/10**i).toFixed(i))(a))==p(a+1)|v==p(a-1)?f(a,b,i+1):v

আমি 25 বাইট সংরক্ষণ করেছি, @ নীলকে ধন্যবাদ
পুনরাবৃত্তি ব্যবহার করে অতিরিক্ত 3 বাইট সংরক্ষণ করা হয়েছে।


2
আপনি সর্বদা পাস /bএবং iকরতে pআপনি এখন পারে করলে তা ভিতরে কোড pনিজেই এবং মাত্র একটি একক পরামিতি গ্রহণ করা। এছাড়াও উত্তরটি ঠিক nতাই আপনাকে আবার এটি গণনা করতে হবে না। আমার কাছে এটির পুনরাবৃত্ত ES6 সংস্করণটি কেবল মাত্র 86 বাইটে এর উপর ভিত্তি করে ...
নীল
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.