শূন্য থেকে বৃত্তাকার


24

শূন্য থেকে বৃত্তাকার

গোলটি শূন্যের দিকে অনুপ্রাণিত ।

যেকোন যুক্তিসঙ্গত পদ্ধতির মাধ্যমে একটি নম্বর ইনপুট দেওয়া হয়েছে, "শূন্য থেকে দূরে" সংখ্যাটি গোল করুন - ধনাত্মক সংখ্যাগুলি বৃত্তাকার, এবং নেতিবাচক সংখ্যাগুলি চারদিকে ডাউন।

যদি আপনি ইনপুটটিকে স্ট্রিং হিসাবে নিতে চান (উদাহরণস্বরূপ STDIN- এর মাধ্যমে) তবে আপনাকে দশমিক পয়েন্ট সহ বা ছাড়াই সংখ্যা হ্যান্ডেল করতে সক্ষম হতে হবে। যদি আপনি এটি একটি সংখ্যা হিসাবে নেন তবে এটি কমপক্ষে ভাসমান-পয়েন্ট যথার্থতা (ডাবল নির্ভুলতা প্রয়োজন নেই) বা যুক্তিযুক্ত সংখ্যাগুলি পরিচালনা করতে সক্ষম হওয়া উচিত।

আপনি চাইলে দশমিক পয়েন্ট (উদাহরণস্বরূপ 42.0) দিয়ে একটি ভাসমান-পয়েন্ট নম্বর আউটপুট করতে পারেন। (অথবা এমনকি কিছু পরীক্ষার ক্ষেত্রে আউটপুট ফ্লোটিং-পয়েন্ট এবং কিছু আউটপুট পূর্ণসংখ্যা রয়েছে, যদি এটি আপনার উত্তরকে আরও সংক্ষিপ্ত করে তোলে))

স্ট্যান্ডার্ড লুফোলগুলি অনুমোদিত নয়, ইত্যাদি etc.

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

-99.9 => -100
-33.5 => -34
-7    => -7
-1.1  => -2
0     => 0
2.3   => 3
8     => 8
99.9  => 100
42.0  => 42
-39.0 => -39

স্যান্ডবক্স লিঙ্ক


যদি আমরা স্ট্রিং প্রসঙ্গে যেমন স্টাডিনের সংখ্যা নিচ্ছি .0তবে পরীক্ষার কেসগুলি যেমন বলে মনে হচ্ছে তেমন কি আমাদের সমর্থন করা দরকার ?
জো কিং

@ জোকিং হ্যাঁ - আমি স্পষ্ট করে প্রশ্ন আপডেট করব। এটি আসলে আসল কেস, তবে স্যান্ডবক্সের লোকেরা নন-দশমিক পরীক্ষার কেস যুক্ত করার পরামর্শ দেয় তাই আহ, আমরা এখানে দু'জনের সাথেই রয়েছি, দুঃখিত
মান কালি

অনুপ্রেরণামূলক হতে ভাল
লাগে

এটি মজার বিষয় যে পূর্বের চ্যালেঞ্জের উপর পূর্ণসংখ্যার ইনপুট এবং পূর্ণসংখ্যার আউটপুট নিয়ে যে সমস্ত ভাষা খুব ভাল কাজ করেছিল সেগুলি এত ভাল কাজ করবে না, যেহেতু তারা -0.1এবং 0.1
জো

উত্তর:


15

এক্সেল, 13 বাইট

=ROUNDUP(A1,)

বিকল্প

=EVEN(A1*2)/2

4
EVEN, কি আশ্চর্যজনক ফাংশন ..
tsh

13
@ আমার মনে হয় আপনার অর্থ "বিজোড় ফাংশন"।
নেতিবাচক সাত

2
@negativeseven ব্যবহারকারীর নাম চেক আউট। :
পি


8

জেলি , 4 বাইট

ĊṠ¡Ḟ

একটি পূর্ণসংখ্যার লিঙ্ক এমন একটি সংখ্যা গ্রহণ করে যা একটি পূর্ণসংখ্যার ফল দেয়।

এটি অনলাইন চেষ্টা করুন! অথবা একটি পরীক্ষা-স্যুট দেখুন

কিভাবে?

ĊṠ¡Ḟ - Link: number, N
  ¡  - repeat...
 Ṡ   - ...number of times: sign of N (repeating -1 is the same as 0 times)
Ċ    - ...action: ceiling
   Ḟ - floor (that)

সুতরাং ঠিক কিভাবে ¡নেতিবাচক সংখ্যা জন্য কাজ করে ? আমি এটি নথিভুক্ত বলে মনে করি না
21

1
এটি জেলির উইকিতে নথিভুক্ত নয়, তবে ¡কোডটির একটি for index in range(repetitions)লুপ দিয়ে পুনরাবৃত্ত প্রকৃতির প্রয়োগ করা হয়েছে । ডিফল্ট এবং ডিফল্ট হিসাবে ডিফল্ট এবং "ধনাত্মক পদক্ষেপের জন্য, কোনও পরিসরের বিষয়বস্তু সূত্রের মাধ্যমে কোথায় এবং কোথায় তা নির্ধারণ করা range([stop=]-1)হয় empty " ডক্সstart0step1rr[i] = start + step*ii >= 0r[i] < stop
জোনাথন অ্যালান

¡এর আচরণ পাইথনের আচরণের উপর নির্ভর করে rangeএবং range(-1).__iter__().__next__()সাথে সাথে ছুঁড়ে দেয় StopIteration
অসম্পূর্ণ স্ট্রিং

6

পাইথন 3 , 23 বাইট

lambda i:i-i%(1|-(i>0))

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

-1 বাইট xnor ধন্যবাদ


1
আপনি (1|-(i>0))একটি বাইট বন্ধ সংরক্ষণ করতে পারেন (1,-1)[i>0]
xnor

@ এক্সনর ভাল লাগলো, ধন্যবাদ!
জিতসে

সাবাশ. আমার কাছে এটি 62 বাইটে ছিল g=lambda r:0if r==0 else(int(r)+r/abs(r)if r/int(r)!=1 else r)
ಥ_ಥ

'|' কী? পূর্বে '-'?
উইলিয়াম

1
@ জাক আমি সত্যিই সে সমাধানটিও পছন্দ করি! আমার প্রাথমিক পদ্ধতিটিও ছিল 24 বাইট।
জিতসে

5

জেলি , 5 4 বাইট

AĊ×Ṡ

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

এই পোর্টগুলি পুনরাবৃত্তির স্ট্যাক্স জেলিতে উত্তর দেয়, সুতরাং ব্যাখ্যাটির জন্য উত্তরটি দেখুন।

-1 বাইট ধন্যবাদ নিক কেনেডি ধন্যবাদ

জেলি , 6 5 বাইট

ĊḞ>?0

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

-1 বাইট জোনাথন অ্যালানকে ধন্যবাদ

এটি কিভাবে কাজ করে

ĊḞ>?0 - Monadic link. Takes a float, x, as argument

   ?  - If:
  > 0 -   x > 0
      - Then:
Ċ     -   ceil(x)
      - Else:
 Ḟ    -   floor(x)

ĊḞ>?0আপনার 6 হিসাবে কাজ করবে।
জোনাথন অ্যালান

1
AĊ×Ṡ4 এবং আপনার প্রথম উত্তরের সাথে কার্যত অভিন্ন।
নিক কেনেডি

@ নিক কেনেডি এবং জোনাথন, পরামর্শগুলির জন্য ধন্যবাদ, তাদের সম্পাদনা করা হয়েছে
কায়ারড কোইনারিংহিংহ

5

জাভা (জেডিকে) , 18 বাইট

d->d.setScale(0,0)

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

ব্যাখ্যা

BigDecimalইনপুট এবং আউটপুট হিসাবে একটি ব্যবহার করে । সংখ্যার স্কেল সেট করে BigDecimalএমন একটি পদ্ধতি রয়েছে setScale। প্রথম প্যারামিটারটি বিন্দু বিভাজকের পরে অঙ্কের সংখ্যা, দ্বিতীয়টি বৃত্তাকার মোড। ROUND_UP"শূন্য থেকে দূরে" গোলাকার এবং এর মান রয়েছে 0তাই আমি সেই মানটিকে হার্ডকোড করি।


5

ভিম, 36 বাইট / কীস্ট্রোক

:s/-/-<Space>
:g/\..*[1-9]/norm <C-v><C-a>lD
:s/<Space><cr>

এটি অনলাইন চেষ্টা করুন! বা সমস্ত পরীক্ষার কেস যাচাই করুন!

ব্যাখ্যা:

:s/             " Replace...
   -            "   A dash
    /-<Space>   "   With a dash and a space

:g/                             " On Every line matching this regex...
   \.                           "   A dot
     .*                         "   Followed By anything
       [1-9]                    "   Followed by a digit other than 0
            /norm               " Run the following keystrokes...
                  <C-v><C-a>    "   Increment the number by 1
                                "   This also conveniently places our cursor just before the dot
                            l   "   Move one character right
                             D  "   Delete everything after the cursor

:s/             " Replace...
   <Space>      "   A space
                "   (With nothing)

ব্যবহার $F-a <esc>প্রথম লাইন এবং সঙ্গে একটি ম্যাক্রো পরিবর্তে /স্থানে একটি শর্তাধীন যেমন :gএবং :norm29 বাইট দেয় tio.run/##HczBCoJAFEZhWva/QpuLCNbizoxalBXRInqJMpjGCYVwmkx7/...
Kritixi Lithos


4

সি # (ভিজ্যুয়াল সি # কম্পাইলার) , 41 বাইট 27 বাইট 24 বাইট

s=>(int)s+Math.Sign(s%1)

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

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

-১১
টিএনএক্স থেকে @ এক্সপ্রায়ার্ড ডেটা -৩ টিএনএক্স থেকে @ নাইট 2


1
সাইটে স্বাগতম, এবং প্রথম প্রথম উত্তর! আশা করি আপনি কোড গল্ফ উপভোগ করবেন!
কায়ার্ড কইনিরিংহিংহ

27 বাইট ... সম্ভবত এখনও কিছু সংরক্ষণ করতে পারেন
ডেটা মেয়াদ শেষ

@ এক্সপায়ার্ড, হ্যাঁ দুর্দান্ত, এই ধরণের কোডিংটি প্রথম নজরে এতটাই অদ্ভুত ছিল যে দেখে মনে হয় যে আমি পুরো লাইব্রেরি জিনিসটি ভুলে গেছি, উত্তর হিসাবে পোস্ট করার জন্য মন করুন
হেসাম হেডিহ

1
@ নাইট 2, মন্তব্যের জন্য টিএনএক্স, আমি পুরো উত্তরটি টাইপ করিনি, আমি Code golf submissionকার্যকারিতাটি ব্যবহার করেছি, শেষ পর্যন্ত আমার নিজের শব্দগুলির একটি বিস্তৃত করেছি , তবে সম্পাদনার জন্য আমি ঠিক সেই কোড লাইনটি পরিবর্তন করেছি, এবং আপনার ঠিক সেখানেই, আমি ভুলে গেছি লিঙ্কটি আপডেট করুন, যা আমাদেরকে প্রথম পদক্ষেপে ফিরিয়ে আনে, কেবল একবার সংশোধন করতে, কিন্ডাকে এখানে সলড করুন, যাইহোক, ইঙ্গিতটির জন্যও
টিএনএক্স

1
আপনি 24 টি বাইট সংস্করণে আপনার টিআইও লিঙ্কটি সম্পাদনা করেছেন, তবে কোড লাইনটি এখনও 27 বাইট সংস্করণ।
মান কালি

4

রুনিক এনেক্যান্টমেন্টস , 18 16 বাইট

1µ-i:'-A{*+'.A@

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

"অ্যাডস" (শূন্য থেকে দূরে) 0.999999 এবং ফলাফলটি মেঝেতে ফেলে দেয়। µভাষার অপারেটরগুলির মধ্যে একটি অনন্যতম নিকটতম জিনিস। সঠিকভাবে কার্যকরী Trunc(x)কমান্ডের সাহায্যে উত্তর এখন 0ইনপুট হিসাবে সমর্থন করে ।


1
পছন্দ করেছেন ভালো বল ধরা. এটি divide by inputইনপুট মানটির "সাইন" পাওয়ার জন্য একটি কাজ করছে যা অবশ্যই ইনপুট 0 হলে 0 দ্বারা বিভাজক হয় that এখনকার কাছাকাছি কোনও ভাল (ভাল) উপায় নেই। প্রথমে এই কমিট করার দরকার পড়বে । আমি ডেনিসকে খোঁচা দেব (পার্শ্ব সুবিধা, উত্তরটি সংক্ষিপ্ত হবে)।
ড্রাকো 18

1
@ জোকিং উত্তর এখন 0সঠিকভাবে পরিচালনা করে ।
ড্রাকো 18

3

স্ট্যাক্স , 6 বাইট

å├╪∙Bß

এটি চালান এবং এটি ডিবাগ করুন

পদ্ধতি:

  1. পরম মান
  2. ছাদ
  3. মূল চিহ্ন দ্বারা গুণ করুন

আমি যে সরঞ্জামটি ব্যবহার করছি তা বলছে এটি 14 বাইট
গুস্ট ভ্যান দে ওয়াল

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


2

রেটিনা 0.8.2 , 38 বাইট

\.0+
.
\b9+\..
0$&
T`9d`d`.9*\..
\..*

এটি অনলাইন চেষ্টা করুন! লিঙ্কে পরীক্ষার কেস অন্তর্ভুক্ত রয়েছে। ব্যাখ্যা:

\.0+
.

দশমিক পয়েন্টের পরে শূন্যগুলি মুছুন, সংখ্যাটি কোনও পূর্ণসংখ্যার নয় তা নিশ্চিত করতে; দশমিক বিন্দুর পরে অঙ্ক না থাকলে পরবর্তী দুটি ম্যাচ ব্যর্থ হয়।

\b9+\..
0$&

যদি পূর্ণসংখ্যার অংশটি সমস্ত হয় 9, বর্ধনকে 0ওভারফ্লোতে অনুমতি দেওয়ার জন্য উপসর্গ করুন ।

T`9d`d`.9*\..

সংখ্যার পূর্ণসংখ্যার অংশ বৃদ্ধি করুন।

\..*

সংখ্যার ভগ্নাংশটি মুছুন।


2

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

ÄîI.±*

একটি 5-বাইটার অবশ্যই সম্ভব হওয়া উচিত ..

এটি অনলাইনে চেষ্টা করুন বা সমস্ত পরীক্ষার কেস যাচাই করুন

ব্যাখ্যা:

Ä       # The absolute value of the (implicit) input,
 î      # ceiled
     *  # And then multiplied by
      # the signum
  I     # of the input
        # (after which the result is output implicitly)

2

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

n=>n%1?n<0?~-n:-~n:n

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

মন্তব্য

n =>        // n = input
  n % 1 ?   // if n is not an integer:
    n < 0 ? //   if n is negative:
      ~-n   //     return -(floor(-n) + 1) = -floor(-n) - 1
    :       //   else:
      -~n   //     return -(-(floor(n) + 1)) = floor(n) + 1
  :         // else:
    n       //   return n unchanged

আমি আমার 16-বাইট উত্তরের জন্য একটি উত্তর লিখছিলাম ( n=>(~~n-n%1)%1+n) যতক্ষণ না আমি জানতে পারলাম যে আমার কোড -1 এবং 1 এর মধ্যে সংখ্যার জন্য কাজ করে না আপনি শেষ 3 বাইটের সাথে কীভাবে এই কাজটি করবেন তা আপনি বুঝতে সক্ষম হবেন বাকি!
গুস্ট ভ্যান ডি ওয়াল



2

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

<?=0^$argn-=0<=>fmod($argn,1);

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

যদি সংখ্যাটি পূর্ণসংখ্যা না হয় তবে সাইন -1 (নেতিবাচক দশমিকের জন্য) বা 1 (ধনাত্মক দশমিকের জন্য) এর ভিত্তিতে এটি যুক্ত করা হয় এবং তারপরে নতুন সংখ্যার পূর্ণসংখ্যার অংশটি মুদ্রিত হয়।


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

<?=[ceil,floor][$argn<0]($argn);

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

মূলত floorইনপুট আউটপুট যদি এটি 0 এর চেয়ে কম হয় তবে অন্যটি ceil


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

<?=($argn>0?:-1)*ceil(abs($argn));

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





1

এপিএল (ডায়ালগ ইউনিকোড) , 15 বাইট

{⍎'⌈⌊'[0>⍵],⍕⍵}

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

সিম্পল ডিএফএন ব্যবহার ⎕IO←0

কিভাবে:

{⍎'⌈⌊'[0>⍵],⍕⍵}  Main function, argument ⍵.
            ⍕⍵   Stringified argument
           ,     Appended to
      [0>⍵]      This item... (0 if  is positive or 0, else 1)
  '⌈⌊'           of this string (which are the functions Ceiling and Floor, respectively)
                Executed as APL code.

1

-rপতাকা , 131 বাইট + 2 বাইট পতাকা জন্য

/^-?[^.]*(\.0*)?$/bQ
s/^(-?)9/\109/
s/([0-8]9*)\..*$/_\1/
h
s/.*_//
y/0123456789/1234567890/
G
s/(.*)\n(.*)_(.*)/\2\1/
:Q
s/\..*$//

Ungolfed

#!/bin/sed -rf

# identify integers
/^-?[^.]*(\.0*)?$/ b isInt

# add a leading 0 if we'll need it later
s/^(-?)9/\109/

# convert to format: -?[0-9]_[0-8]9*
s/([0-8]9*)\..*$/_\1/

# move the part that will remain constant into the hold buffer
h
s/.*_//

# [0-8]9* can be incremented via character substitution
y/0123456789/1234567890/

# reassemble parts
G
s/(.*)\n(.*)_(.*)/\2\1/

:isInt
# Get rid of anything after the decimal point
s/\..*$//


1

জাভাস্ক্রিপ্ট (নোড.জেএস), 30 23 21 বাইট

s=>~~s+Math.sign(s%1)

সি # উত্তর দ্বারা অনুপ্রাণিত।

-7 বাইটের জন্য @ ভ্যালু কালি এবং @ গুস্ট ভ্যান ডি ওয়ালকে ধন্যবাদ!

আবার ধন্যবাদ, @ গুস্ট ভ্যান ডি ওয়াল অন্য -2 বাইটের জন্য!


এই ক্ষেত্রে কৌতুক +=কখন +করবেন কেন ব্যবহার করবেন? -1 বাইট
মান কালি

পরিবর্তে parseInt(), আমি কেবল ~~শুরুতে বা অন্য বিটওয়াস অপারেটরের মতো |0বা ^0শেষে ব্যবহার করতাম বাইটের আরও এক অংশ বাঁচাতে
গুস্ট ভ্যান ডি ওয়াল

@ ভালিউইঙ্ক বাহ, আমি কেন লিখলাম তা সম্পর্কে আমার ধারণা নেই +=, কারণ এটি উল্লেখ করার জন্য
ধনু

আপনি এখনও বাহ্যিক বন্ধনীগুলি ড্রপ করতে পারেন
গুস্ট ভ্যান ডি ওয়াল

@ গুস্তভান্ডেওয়াল ওহ, আমি জানি না! ধন্যবাদ
ধনু

0

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

{$_+|0+.sign*?/\./}

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

সংক্ষিপ্ততম সমাধান নয়, তবে আমি এটিতে কাজ করছি। মূলত এই সংখ্যাটি কেটে দেয়, তারপরে শূন্য থেকে একদিকে দূরে যুক্ত করে যদি সংখ্যাটি শুরু করা পুরো না হয়


0

3
লাম্বদা ফাংশনটি একটি স্পষ্ট returnবিবৃতি ব্যবহার না করেই লেখা যেতে পারে ।
জোয়েল

@ জোয়েল সত্যই সঠিক। আর তুমি 4 অতিরিক্ত বাইট পরিবর্তন সংরক্ষণ করতে পারবেন (int)a/a<1করার a%1!=0: 30 বাইট
কেভিন Cruijssen

এমন একটি BigDecimal.setScaleপদ্ধতিও রয়েছে যা দুর্দান্ত ফলাফল দেয় যেমন আমার উত্তরটি দেখায়
অলিভিয়ার গ্রাগোয়ার




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