शून्य की ओर गोल


14

यह एक सरल कार्य है। एक सकारात्मक या नकारात्मक वास्तविक संख्या को देखते हुए, इसे अगले पूरे पूर्णांक को शून्य के करीब गोल करें।

चुनौती

  • एक सकारात्मक या नकारात्मक वास्तविक संख्या के किसी भी उचित रूप (स्टड, फ़ंक्शन, आदि) के माध्यम से इनपुट लें।

  • इस संख्या को "शून्य की ओर" गोल करें - इसका मतलब है कि अगर यह सकारात्मक है तो आप गोल हो जाएंगे, और यदि यह नकारात्मक है तो आप गोल हो जाएंगे।

  • नंबर वापस करें या इसे कंसोल पर आउटपुट करें।

परीक्षण के मामलों

 1.1   =>  1
-1.1   => -1
 500.4 =>  500
-283.5 => -283
 50    =>  50
-50    => -50

नियम

मज़े करो! अधिक जिमी चुनौतियां जल्द ही आ रही हैं


3
मैं उत्पादन मई 3.00के लिए 3.14?
tsh

1
@A_ यदि त्रुटि संदेश stderr में हैं। और आपका आउटपुट stdout में है। यह डिफ़ॉल्ट रूप से अनुमत है।
tsh

1
इसके अलावा 0.01और -0.01उपज चाहिए 0...
डकैती

2
हम्म, यह एक कोड गोल्फ के लिए अनुचित रूप से तुच्छ लगता है। अधिकांश लंग्स में इसके लिए एक बेसिन होगा, नहीं? ऐसा लगता है कि हम मान रहे हैं कि सभी इनपुट और आउटपुट स्ट्रिंग्स हैं?
ऑक्टोपस

2
3.00 निश्चित रूप से पूर्णांक है। अधिक सटीक रूप से, मानक गणितीय संकेतन के साथ-साथ कई प्रोग्रामिंग भाषाओं में, अंकन "3.00" संख्या 3 को दर्शाता है, जो एक पूर्णांक है; लेकिन कई प्रोग्रामिंग भाषाओं में, यह इंगित करता है कि संख्या को फ़्लोटिंग-पॉइंट प्रारूप में संग्रहीत किया जाना है। (लेकिन यह प्रारूप में संग्रहीत है की परवाह किए बिना एक पूर्णांक है।)
टान्नर स्विट

जवाबों:


13

जेली , 1 बाइट

r

एक पूर्ण कार्यक्रम (एक मोनडिक लिंक के रूप में यह लंबाई की सूची देता है)।

इसे ऑनलाइन आज़माएं!

कैसे?

r - Main Link: number, X           e.g. -7.999
r - inclusive range between left (X) and right (X) (implicit cast to integer of inputs)
  -  = [int(X):int(X)] = [int(X)]       [-7]
  - implicit (smashing) print            -7

40

पायथन 3 , 3 बाइट्स

int

इसे ऑनलाइन आज़माएं!

दशमलव बिंदु के बाद अंकों को काटता है।

नोट: यह एक तुच्छ उत्तर है। कृपया उत्तर देने से पहले अन्य उत्तरों पर एक नज़र डालें


18
यह दर्शाता है कि पायथन 3 पायथन 2 की तुलना में अधिक लोकप्रिय है।

1
इर ... क्यों उठता है? यह एक सुंदर तुच्छ उत्तर है ...
90

मुझे लगता है कि यह कोड की आपकी उत्कृष्ट व्याख्या है। :)
चास ब्राउन

3
@ChasBrown मुझे ऐसा नहीं लगता ... स्पष्टीकरण भी एक मानक कैलिबर स्पष्टीकरण नहीं है।
मिल्कीवेय 90

मुझे लगता है कि @ चास इस ओर इशारा कर रहे हैं कि स्पष्टीकरण असीम रूप से अपने से अधिक पूर्ण है।
पीआरएल

21

2
क्षमा करें, लेकिन मैं आपको निनजाता हूं ( codegolf.stackexchange.com/a/190673/83048 )
MilkyWay90

2
आर्ग! लेकिन आप Python 3 ... :)
Chas Brown

सच है, लोगों को पता होना चाहिए कि यह पायथन 2 में भी काम करता है
मिल्कीवेय 90

दुर्भाग्य से आप एक मिनट के बारे में bamboozled हो गया :(
संयोजक

3
मैं लुट गया! :)
चास ब्राउन

12

पर्ल 5 -p056l15 , 2 बाइट्स

<>

इसे ऑनलाइन आज़माएं!

वह कैसे काम करता है?

-056   # (CLI) Make "." the input record separator
-l15   # (CLI) Make "\n" the output record separator
       # (otherwise it would use the input separator)
-p     # (CLI) Implicitly read $_ from STDIN
<>     # Read the second input field and do nothing with it
-p     # (CLI) Output $_ to STDOUT

या यदि आप अधिक पारंपरिक उत्तर पसंद करते हैं:

पर्ल 5 , 6 बाइट्स

$_=int

इसे ऑनलाइन आज़माएं!


l15 नहीं है \n, यह है \r\nl12 होगा। यह TIO में समान दिखता है, हालांकि।
ग्रैमी

दूसरा विकल्प के लिए, वहाँ भी है-Minteger -p $_/=1
Nahuel Fouilleul

4
पहला समाधान वास्तव में 8 बाइट्स हैं क्योंकि आपको अपने बाइट काउंट में झंडे शामिल करने की आवश्यकता है
जॉन ड्वोरक

2
@JohnDvorak वास्तव में मेटा पोस्ट codegolf.meta.stackexchange.com/questions/14337/… के अनुसार , झंडे बाइट्स नहीं जोड़ते हैं, लेकिन भाषा के एक अलग संस्करण के रूप में गिने जाते हैं।
निक केनेडी

@NahuelFouilleul मैंने उस एक के बारे में भी सोचा था, लेकिन इससे कोई फर्क नहीं पड़ा क्योंकि मुझे 2 बाइट्स दूसरे तरीके से मिलीं।
Xcali

6

भूलभुलैया और हेक्सागोनी , 3 बाइट्स

FryAmTheEggman को इंगित करने के लिए धन्यवाद मैंने कुछ Hexagony लिखा है!

?!@

इसे ऑनलाइन आज़माएं! और इसे ऑनलाइन आज़माएं!

कैसे?

भूलभुलैया और हेक्सागोनी दोनों आपको जल्द से जल्द बताएंगे! ...

? - read and discard from STDIN until a digit, a - or a + is found. Then read as many characters as possible to form a valid (signed) decimal integer and push its value
! - pop a value and write its decimal representation to STDOUT
@ - exit the labyrinth

3
यह मार्टिन की कुछ अन्य भाषाओं के बारे में सच हो सकता है, लेकिन ठीक उसी कार्यक्रम हेक्सागोनी में काम करता है ।
FryAmTheEggman

3
हेह, मैं हमेशा हेक्सागोनी में एक जवाब बनाना चाहता हूं। कोशिश किए बिना ऐसा करना आखिरी चीज थी जो मुझे लगा कि हो सकता है!
जोनाथन एलन

IO@बैकहैंड में उसी तरह से काम करता है, और &.@Befunge में। शायद पूर्णांक इनपुट के साथ बहुत सी भाषाएं, और केवल पूर्णांक हैंडलिंग एक ही होगी
जो किंग

@JoKing तो हम किसी ऐसे व्यक्ति की प्रतीक्षा कर रहे हैं जो पूर्णांक i / o के साथ एक भाषा का पता लगा रहा है और स्टड से स्टैक / सूची तक सभी संख्या को पढ़ रहा है और फिर उन्हें डिफ़ॉल्ट रूप से प्रिंट करने के लिए प्रिंट कर रहा है। मेरा मानना ​​है कि एक हो सकता है, और यह शून्य बाइट्स में एक जवाब होगा।
tsh

@ शायद सबसे ज्यादा!
जोनाथन एलन

6

ब्रेनफक , 26 बाइट्स

,[.+++++[->+++++<]>+[,>]<]

इसे ऑनलाइन आज़माएं!

एक अनुगामी के साथ आउटपुट .यदि संख्या एक दशमलव थी

बहुत अधिक प्रासंगिक गोल्फिंग वार नहीं है, सिवाय इसके कि 46 को जांचने के बजाय कि अगर कोई चरित्र है ., तो मैं 5 जोड़ देता हूं और 255 प्राप्त करने के लिए 5 से गुणा करता हूं, फिर शून्य पर रोल करने के लिए एक और जोड़ें। 3 को घटाना, 6 से गुणा करना और 2 को घटाना एक ही बायटेकाउंट है


6

सी (tcc), 39 21 10 बाइट्स

मैं वास्तव में काफी हैरान था कि किसी ने सी का उपयोग करने के बारे में नहीं सोचा था।

f(float i){}

यह एक पहचान समारोह नहीं है क्योंकि यह प्रतीत होता है। एफ फ़ंक्शन का निहित इंट प्रकार फ्लोटिंग-पॉइंट को विभाजित करता है।

TIO

लोगों को बरगलाए जाने की संभावना कम है, लेकिन इसकी लंबाई कम है:

f(int i){}

TIO


floatफ्लोटिंग पॉइंट वैल्यू के इनपुट के लिए विभिन्न रजिस्टर का उपयोग करने के साथ काम न करें ।
हौलेथ



3

जावा (ओपनजेडके 8) , 15 बाइट्स 9 बाइट्स

s->(int)s

इसे ऑनलाइन आज़माएं!

@ केविन-क्रूज़सेन को धन्यवाद


एक इंटरफ़ेस लैम्ब्डा का उपयोग करके 9 बाइट्स ताकि हम आदिम और एक साधारण कास्ट का उपयोग कर सकें (int)। और यहाँ एक मजेदार 15 बाइट्स वैकल्पिक एक विधि संदर्भ का उपयोग कर। :)
केविन क्रूज़सेन

1
@KevinCruijssen 9 बाइट्स उत्तर की ओर इशारा करने के लिए धन्यवाद! और 15bytes वैकल्पिक समाधान शानदार है! आपके जवाबों के भी बड़े प्रशंसक! मुझे आपके योगदान के लिए समुदाय में शामिल होने के लिए प्रेरित किया गया: डी
मार्गन

खुशी है कि मैं मदद कर सकता हूं, और सुनने के लिए मजेदार हूं कि मैं एक प्रेरणा हूं। : आपका स्वागत है! ओह, और अगर आपने उन्हें अभी तक नहीं देखा है, तो जावा में गोल्फिंग के लिए सुझाव और <सभी भाषाओं में गोल्फिंग के लिए टिप्स> दोनों को पढ़ने के लिए दिलचस्पी हो सकती है। यहां रहने का आनंद! :)
केविन क्रूज़सेन

धन्यवाद! :) मैंने पहले से ही सभी युक्तियों को पढ़ा और पोस्ट करने से पहले वास्तव में बहुत कुछ खो दिया! आशा है कि मैं भविष्य में और अधिक जवाब दे सकता हूं!
मार्गन

3

एक्सेल, 10 बाइट्स

=TRUNC(A1)

TRUNC संख्या के भिन्नात्मक भाग को हटाकर किसी संख्या को पूर्णांक में काटता है।


3

आर , 13 5 बाइट्स

धन्यवाद रॉबिन राइडर

trunc

इसे ऑनलाइन आज़माएं!


2
इस बात पर आम सहमति है कि किसी कार्य या पूर्ण कार्यक्रम के साथ उत्तर देना स्वीकार्य है। यहां, फ़ंक्शन फॉर्म केवल 5 बाइट्स है
रॉबिन राइडर


2

रूबी , 11 बाइट्स

proc &:to_i

मैंने इसे इसलिए चुना क्योंकि यह खुद को लैंबडास से अलग करता है जिसे हम रूबी गोल्फर्स आमतौर पर इस्तेमाल करते हैं (शुक्र है, यह "पारंपरिक" समाधान के रूप में एक ही बायटेकाउंट था):

->n{n.to_i}

इसे ऑनलाइन आज़माएं!


2

ReRegex , 12 बाइट्स

\..+//#input

इसे ऑनलाइन आज़माएं!

ReRegex एक प्रोग्रामिंग भाषा है जो मेल खाती है और तब तक बदलती रहती है जब तक कोई मेल न हो।

MATCH
    \.                                      The literal period/full stop char
    .+                                      Followed by one or more characters
REPLACE
    (nothing)                               Equivalent to removing the input
STRING TO REPEATEDLY MATCH/REPLACE UNTIL THERE ARE NO MATCHES
    #input                                  The input



2

इंटेल 8087 एफपीयू मशीन कोड, 14 बाइट्स

D9 2E 010C      FLDCW CW_RNDZ   ; modified CW register for round towards zero
D9 06 010E      FLD  A          ; load single precision value A into ST(0)
DF 16 0112      FIST B          ; store integer value of ST(0) into B

CW_RNDZ   DW    0F7FH           ; control word to round down

इनपुट एक स्मृति स्थान में एक सटीक मूल्य है A(एक DD), उत्पादन स्मृति स्थान पर पूर्णांक मान है B(एक DW)।

8087 को पहले नियंत्रण शब्द ( 0F7FH) सेट करके शून्य मोड की ओर गोल किया जाना चाहिए । फिर फ्लोटिंग पॉइंट वैल्यू लोड करें और एक पूर्णांक पर वापस स्टोर करें।





2

केग ,19 17 13 बाइट्स

यह कुछ अनुगामी अपरिहार्य वर्णों को आउटपुट करता है। इसके अलावा, यह एक त्रुटि के साथ बाहर निकलता है। (अब हमें उल्टा इनपुट चाहिए!)

?'(:\.>')"([,

एक त्रुटि के साथ बाहर निकलने की अनुमति डिफ़ॉल्ट रूप से है
EdgyNerd

2

श्वेत रिक्ति (साथ vii5ard संकलक ), 18 17 बाइट्स

[S S N
_Push_0][S N
S _Duplicate_0][T   N
T   T   _Read_STDIN_as_integer][T   T   T   _Retrieve_input][T  N
S T _Print_as_integer]

पत्र S(स्थान), T(टैब), और N(नई-पंक्ति) केवल हाइलाइटिंग के रूप में जोड़े गए।
[..._some_action]केवल स्पष्टीकरण के रूप में जोड़ा गया।

इसे ऑनलाइन आज़माएं। आपको ऑनलाइन व्हाट्सप-कंपाइलर vii5ard पर कोड चलाने के लिए कोड को स्वयं कॉपी करना होगा (ध्यान दें कि एसई टैब को रिक्त स्थान के एक समूह में परिवर्तित करता है!)। रन पर क्लिक करने पर, यह एक इनपुट (यानी -285.5) मांगेगा , और दर्ज करने के बाद यह जारी रहेगा और आउटपुट देगा -283

छद्म कोड में स्पष्टीकरण:

Integer i = STDIN as integer
Print i as integer

व्हॉट्सएप केवल I / O को पूर्णांक या एकल वर्णों के रूप में उपयोग कर सकता है, इसलिए इस मामले में यह पूर्णांक के रूप में इनपुट को पढ़ेगा और किसी अन्य अनुगामी पात्रों को अनदेखा करेगा। Ie -283.5या -283abc5दोनों इनपुट (और इस प्रकार आउटपुट) होंगे -283

दुर्भाग्य से यह ऊपर दो कारणों से टीआईओ पर काम नहीं करता है (सभी व्हाट्सएप कंपाइलर थोड़ा अलग हैं ..):

  1. no parseजब हम किसी इनपुट को पूर्णांक के रूप में पढ़ने का प्रयास करते हैं, तो यह एक त्रुटि देगा , जो एक मान्य पूर्णांक नहीं है। इसलिए, इसके बजाय हम एक समय में एक चरित्र को पढ़ेंगे, और जैसे ही हमने सामना किया है (एक त्रुटि के साथ) बंद हो जाएगा .या कोई और इनपुट नहीं होगा (यानी 50/ -50)।
  2. Vii5ard कंपाइलर में 0 के साथ बस पुश करना भी संभव है SSN, जबकि TIO पर इसके लिए अतिरिक्त Sया T: SSSN/ की आवश्यकता होती है SSTN। पहला Sहै स्टैक मैनिपुलेशन इनेबल ; दूसरा Sहै पुश क्या पूर्णांक के रूप में इस प्रकार है ; तीसरा S/ Tसकारात्मक / नकारात्मक क्रमशः है; और कोई भी S/ Tउसके बाद (उसके बाद N) वह संख्या है जिसे हम बाइनरी में धक्का देना चाहते हैं, कहाँ S=0और T=1। पूर्णांक 0 के लिए यह बाइनरी हिस्सा मायने नहीं रखता, क्योंकि यह डिफ़ॉल्ट रूप से 0 है। लेकिन TIO पर हमें अभी भी सकारात्मक / नकारात्मक निर्दिष्ट करना होगा, और अधिकांश अन्य व्हाट्सएप संकलक जैसे vii5ard नहीं।

व्हॉट्सएप ( टीआईओ संकलक के साथ ), 48 बाइट्स

[N
S S N
_Create_Label_LOOP][S S S N
_Push_0][S N
S _Duplicate_0][T   N
T   S _Read_STDIN_as_character][T   T   T   _Retrieve_input][S N
S _Duplicate_input][S S S T S T T   T   S N
_Push_46_.][T   S S T   _Subtract][N
T   S S N
_If_0_Jump_to_Label_EXIT][T N
S S _Print_as_character][N
S N
N
_Jump_to_Label_LOOP]

पत्र S(स्थान), T(टैब), और N(नई-पंक्ति) केवल हाइलाइटिंग के रूप में जोड़े गए।
[..._some_action]केवल स्पष्टीकरण के रूप में जोड़ा गया।

इसे ऑनलाइन आज़माएं (कच्चे स्थान, टैब और नई लाइनों के साथ)।

छद्म कोड में स्पष्टीकरण:

Start LOOP:
  Character c = STDIN as character
  If(c == '.'):
    Exit program
  Print c as character
  Go to the next iteration of LOOP




1

05AB1E , 1 बाइट

ï

विरासत संस्करण (जिसे पायथन में लिखा गया है) में, पूर्णांक बिल्डिन के कलाकारों ने दशमलव मानों को कम करने की अपेक्षा की है।

इसे ऑनलाइन आज़माएं।

05AB1E के नए संस्करण में (अमृत में लिखा गया है) यह केवल स्ट्रिंग्स पर काम करता है (भले ही पूर्णांक / दशमलव / स्ट्रिंग्स सभी विनिमेय होने चाहिए, जब तक कि उदाहरण के लिए लेक्सोग्राफ़िक बनाम संख्यात्मक को सॉर्ट न किया जाए)। लगता है मैं @ अदनान को एक बग रिपोर्ट कर सकता हूं

पूर्णांक / दशमलव इनपुट (गलत परिणाम देने) बनाम स्ट्रिंग इनपुट (सही परिणाम देने) की तुलना करने के लिए इसे ऑनलाइन आज़माएं


1
ïगैर-विरासत 05AB1E पर ठीक काम करता है । यह एरे इनपुट है जो एक अजीब तरीके से काम करता है।
ग्रिम्मी


1

ऐहुई (esotope) , 9 बाइट्स

방망희

इसे ऑनलाइन आज़माएं!

त्रिकोणीय उत्तर (या किसी अन्य भाषा के पूर्णांक के रूप में संख्यात्मक इनपुट लेता है) से मूल विचार।

मजेदार तथ्य। 방망희(उच्चारण bang-mang-heui( aकी ark)) के रूप में लगभग एक ही लग रहा है 방망이(स्पष्ट bang-mang-i( aका ark, iकी तरह लगता है E) है, जो बल्ले का मतलब है।

यह कैसे काम करता है?

पूर्णांक के रूप में संख्या लेता है।

संख्या के रूप में प्रिंट करता है।

कार्यक्रम को समाप्त करता है।


1

पॉवरशेल , 19 बाइट्स

$args-replace'\..*'

इसे ऑनलाइन आज़माएं!

डिफ़ॉल्ट रूप से PowerShell बैंकरों की गोलाई करता है , जो कि अन्य भाषाओं के राउंडिंग करने के विपरीत बहुत अधिक है। इसलिए, परंपरागत रूप से हम [Math]::Truncate()दशमलव बिंदु और किसी भी दशमलव भाग को छीनने के लिए उपयोग करेंगे और "रुचि शून्य" प्राप्त करने के लिए प्राप्त करेंगे। हालाँकि, यह थोड़ा लंबा है, इसलिए इस टिप का उपयोग करते हुए , हम इनपुट को एक स्ट्रिंग में जोड़कर -replace, अवधि और इसके बाद के कुछ और से छुटकारा पाने के लिए एक regex प्रदर्शन करके और पाइप लाइन के लिए आउटपुट को छोड़ कर, गोल-की-शून्य कर सकते हैं। छापना।


मुझे नहीं लगता कि यह नकारात्मक संख्याओं के लिए वांछित परिणाम देगा।
ऑक्टोपस

@ ऑक्टोपस यकीन है कि यह करता है? यह केवल दशमलव भाग को बंद कर देता है, जो संख्या को शून्य की ओर ले जाता है चाहे वह सकारात्मक या नकारात्मक फ्लोट से हो।
AdmBorkBork

सही, दुआ। जबरदस्त हंसी।
ऑक्टोपस

1

त्रिकोणीय , 3 बाइट्स

$.%

इसे ऑनलाइन आज़माएं!

त्रिकोणीय एक पूर्णांक के रूप में संख्यात्मक इनपुट लेता है; किसी भी दशमलव मान को काट दिया जाता है। यदि यह बिना प्रिंट किए इनपुट को इनपुट पर छोड़ने के लिए स्वीकार्य है, तो यह समाधान इसके बजाय हो सकता है:


त्रिकोणीय , 1 बाइट

$

इसे ऑनलाइन आज़माएं!

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.