शून्य से दूर रहें


41

कार्य

एक गैर-नकारात्मक पूर्णांक को देखते हुए n, आउटपुट 1यदि nहै 0, और nअन्यथा के मूल्य को आउटपुट करता है ।

इनपुट

एक गैर-नकारात्मक पूर्णांक।

  • यदि आप स्ट्रिंग को इनपुट के रूप में स्वीकार करना चाहते हैं, तो स्ट्रिंग निम्नलिखित रेगेक्स से मेल खाएगी: /^(0|[1-9][0-9]*)$/अर्थात इसमें कोई अग्रणी शून्य नहीं होना चाहिए, सिवाय इसके कि यह कब हो 0
  • यदि आप एक वास्तविक पूर्णांक को इनपुट के रूप में स्वीकार करते हैं, तो आप मान सकते हैं कि पूर्णांक भाषा की हैंडलिंग क्षमता के भीतर है।

उत्पादन

एक सकारात्मक पूर्णांक, ऊपर निर्दिष्ट। अग्रणी शून्य की अनुमति नहीं है। आपका आउटपुट regex से मेल खाना चाहिए /^[1-9][0-9]*$/

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

input output
    0      1
    1      1
    2      2
    3      3
    4      4
    5      5
    6      6
    7      7

स्कोरिंग

यह , इसलिए बाइट्स जीत में सबसे छोटा जवाब है।

मानक खामियां लागू होती हैं।


1
आपको शायद TNB CMC का लिंक डालना चाहिए , क्योंकि यह चुनौती कहां से आई है।
mbomb007 20

क्या उत्तर को पूर्ण कार्य करने की आवश्यकता है, या क्या यह शरीर हो सकता है?
कालेब क्लेवेटर

1
@CalebKleveter PPCG में डिफ़ॉल्ट नियम यह है कि उत्तर या तो एक फ़ंक्शन या पूर्ण प्रोग्राम है, लेकिन स्निपेट नहीं।
लीक नून

क्या हम एक प्रमुख शून्य के साथ आउटपुट प्रिंट कर सकते हैं?
एमडी एक्सएफ

@MDXF हाँ, आप कर सकते हैं।
लीकी नून

जवाबों:


18

सी (जीसीसी), 14 13 बाइट्स

f(n){n=n?:1;}

n?:1अन्य सी उत्तर की टिप्पणियों में चाल की याद दिलाने के लिए @betseg का धन्यवाद !

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

सी, 17 बाइट्स

f(n){return!n+n;}

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

सी, 16 बाइट्स

#define f(n)!n+n

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



1
@betseg ऐसा इसलिए है क्योंकि यह एक मैक्रो है। संकलक इसे देखता है 3*!n+nजो समान है 3*0+5
स्टेडीबॉक्स

1
मुझे पता है, लेकिन मुझे लगता है कि आपको सीधे "रिटर्न" मूल्यों के लिए अंकगणितीय ऑपरेटरों को लागू करने में सक्षम होना चाहिए, यही कारण है कि मैक्रोज़ के चारों ओर कोष्ठक लगाने के लिए यह आम बात है। मुझे नहीं लगता कि मैक्रो वैध है।
betseg

4
@ फ़ेससेग मुझे नहीं लगता कि कोड गोल्फ में इसकी आवश्यकता है। मैंने कभी सी मैक्रों के साथ एक कोड गोल्फ उत्तर नहीं देखा है।
स्टेडीबॉक्स

1
@hucancode TIO लिंक देखें। आपको mainउस फ़ंक्शन से जोड़ने की आवश्यकता है जिसे फ़ंक्शन / मैक्रो fकहा जाता है। एक समाधान को डिफ़ॉल्ट रूप से एक पूर्ण कार्यक्रम होने की आवश्यकता नहीं है। जीसीसी-विशिष्ट संस्करण किसी अन्य संकलक पर संकलित हो सकता है या नहीं भी हो सकता है, और किसी अन्य संकलक पर संकलित होने पर यह सही ढंग से चल सकता है या नहीं भी।
स्टेडीबॉक्स

17

जाप , 2 बाइट्स

ª1

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

व्याख्या

ªJS के ||ऑपरेटर के लिए एक शॉर्टकट है । जाप में निहित इनपुट है, इसलिए यह कार्यक्रम गणना करता है input||1, और परिणाम को स्पष्ट रूप से STDOUT में भेजा जाता है।

w1के रूप में अच्छी तरह से काम करेगा, इनपुट का अधिकतम और ले रहा है 1


16

ऐलिस , 7 बाइट्स

1/s
o@i

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

व्याख्या

1   Push 1. Irrelevant.
/   Reflect to SE. Switch to Ordinal.
i   Read all input as a string.
    Reflect off bottom right corner. Move back NW.
/   Reflect to W. Switch to Cardinal.
1   Push 1.
    IP wraps around to last column.
s   Sort swap: implicitly convert the input to an integer. Then, if the top stack 
    element is less than the one below, the two are swapped. It basically computes
    min and max of two values at the same time, with max on top.
/   Reflect to NW. Switch to Ordinal.
    Immediately reflect off the top boundary. Move SW.
o   Implicitly convert the result to a string and print it.
    Reflect off bottom left corner. Move back NE.
/   Reflect to S. Switch to Cardinal.
@   Terminate the program.

15

जावास्क्रिप्ट (ईएस 6), 7 बाइट्स

n=>n||1

5
वैकल्पिक: n=>n+!n(कम से कम मुझे लगता है)
मैथ्यू रो

@SIGSEGV हां, यह वास्तव में काम करेगा। (यह भी हो सकता है n|!n, हालांकि यह एक 31-बिट मात्रा तक सीमित है।)
अरनौल्ड

यह n को सरल बनाया जा सकता है || १ || केवल एक चीज जो असत्य का मूल्यांकन करती है वह है 0.
एनीकार्ट

1
@ansiart यदि आपकी बात यह है कि n=>n||1इसे सरल बनाया जा सकता है n||1, तो नहीं। स्वीकार्य जवाब या तो पूर्ण कार्यक्रम या कार्य हैं। ES6 सिंटैक्स में n=>do_something_with(n)एक तीर फ़ंक्शन है।
अरनौलड

1
@StanStrum यदि हमें nशून्य नहीं है तो हमें मूल मूल्य वापस करना होगा । nजब भी कम से कम महत्वपूर्ण बिट सेट न हो (जैसे (4|1) === 5) तो एक बिटवाइज़ या संशोधित होगा ।
अरनौलड


12

रेटिना , 4 बाइट्स

^0
1

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

यदि इनपुट शून्य से शुरू होता है, तो उसे 1. से बदलें (वर्क्स क्योंकि इनपुट को शून्य-शून्य मान के लिए अग्रणी शून्य नहीं होने की गारंटी है।)


12

वी , 4 बाइट्स

é0À

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

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

विम में, कमांड एक गिनती स्वीकार करते हैं। उदाहरण के लिए, <C-a>एक संख्या में वृद्धि होगी, लेकिन 7<C-a>एक संख्या में वृद्धि होगी 7. हालांकि, आप 0एक गिनती के रूप में उपयोग नहीं कर सकते , क्योंकि

  • 0 पहले से ही एक कमांड है (पहले कॉलम पर जाएं), और

  • एक पाठ संपादक के संदर्भ में, यह शायद ही कभी अनुरोध करता है कि आदेश को 0 बार चलाया जाए।

यह एक पाठ संपादक के लिए ठीक है, लेकिन आमतौर पर एक गोल्फ भाषा के लिए अप्रिय है, इसलिए वी कुछ आदेशों को अधिलेखित करता 0है ताकि एक वैध गणना हो। उदाहरण के लिए, é, ñ, Ä, और कुछ अन्य। हालाँकि, चूंकि <C-a>बिल्ट विम कमांड है, इसलिए इसे ओवरराइट नहीं किया जाता है, इसलिए इसे पॉजिटिव इनपुट के साथ चलाने पर यह मिलता है:

N       " N times:
 <C-a>  "   Increment

लेकिन इनपुट के रूप में 0 के साथ चलना:

0       " Go to column one
 <C-a>  " Increment

पूर्ण विवरण:

é0          " Insert a 0
  À         " Arg1 or 1 times:
   <C-a>    " Increment

1
एक समय कि 0गिनती नहीं होने से उपयोगी है। मैंने इसे पहली बार में भी नहीं माना क्योंकि मैंने इसे कई बार टाला है
nmjcman101


12

हास्केल, 5 बाइट्स

max 1

प्रयोग उदाहरण: (max 1) 0-> 1

समझाने के लिए ज्यादा कुछ नहीं।



10

आर, 13 बाइट्स

max(1,scan())

स्टड nसे पढ़ता है। इसके साथ pmax, यह एक सूची में पढ़ सकता है और +1 बाइट के लिए सूची में प्रत्येक तत्व के लिए उचित मूल्य वापस कर सकता है।

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

मुझे ध्यान देना चाहिए कि स्वेन होइनस्टीन द्वारा 13 बाइट्स में एक और ठीक आर समाधान है जो अभी तक एक और 13 बाइट समाधान के लिए अनुमति देता है

(n=scan())+!n

अगर मुझे आश्चर्य होता है कि आर के लिए निचली सीमा है।


अन्य 13 का उपयोग कर समाधान बाइट्स pryr: pryr::f(n+!n)। कुछ भी छोटा नहीं पाया जा सकता ...
JayCe

9

क्यूबिक्स , 6 बाइट्स

OI!1L@

किसी तरह इसे एक यूनिट क्यूब पर फिट करने में कामयाब रहे ... इसे ऑनलाइन टेस्ट करें!

व्याख्या

चलाने से पहले, कोड को क्यूब नेट के रूप में व्यवस्थित किया जाता है:

  O
I ! 1 L
  @

IP (इंस्ट्रक्शन पॉइंटर) को फिर दायीं ओर वाले फेस ( I) पर रखा जाता है । वहां से चलाए गए निर्देश हैं:

I  Input a number from STDIN and push it to the stack.
!  If the top number is non-zero, skip the next instruction.
1  Push a 1 (only if the input was zero).
L  Turn left. The IP is now on the top face facing the !.
O  Output the top item as a number.

आईपी ​​फिर नीचे चेहरे पर !लंघन, फिर से हिट @। यह सहायक नहीं है, क्योंकि हमें @कार्यक्रम को समाप्त करने के लिए हिट करने की आवश्यकता है । आईपी Lफिर से हिट करता है और एक बार फिर L1!Iसमाप्त होने से पहले रिवर्स ( ) में मध्य रेखा के माध्यम से जाता है L, जो अंत में आईपी को चालू करता है @








5

मारियोलैंग , 12 बाइट्स

;
=[
:<+
 =:

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

यह काम किस प्रकार करता है

मारियो शीर्ष बाएं में शुरू होता है, शुरू में दाएं चलना। वह इनपुट से एक इंट पढ़ता है ( ;) और इसे वर्तमान मेमोरी सेल में संग्रहीत करता है। फिर वह जमीन से गिर जाता है ( =), मारना [, जिससे उसे अगले कमांड को अनदेखा करना पड़ता है यदि वर्तमान सेल 0 है।

यदि सेल 0 नहीं है, तो वह बाएं चलना शुरू कर देगा ( <), वर्तमान सेल को एक इंट ( :) के रूप में आउटपुट करता है , और उसकी मृत्यु (प्रोग्राम के अंत) तक गिर जाता है।

यदि सेल 0 है, तो वह बाएं मुड़ने के आदेश को अनदेखा करता है, और दाएं चलता रहता है। वह वर्तमान सेल को बढ़ाता है ( +), इसे आउटपुट करता है, और उसकी मृत्यु हो जाती है।


5

ब्रेन-फ्लैक , 22 , 10 बाइट्स

({{}}[]{})

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

स्पष्टीकरण:

यदि इनपुट गैर-शून्य है, तो {{}}स्टैक से सब कुछ पॉप जाएगा और इनपुट का मूल्यांकन करें। यदि यह शून्य है, तो कुछ भी पॉप नहीं किया जाएगा, और यह शून्य का मूल्यांकन करेगा। तो चल ({{}})देता है

गैर शून्य:

n

शून्य:

0
0

इस बिंदु पर, हम स्टैक की ऊंचाई जोड़ेंगे (0 के लिए गैर-शून्य, शून्य के लिए 1) और स्टैक से एक और मूल्य पॉप करें। (चूंकि स्टैक 0 की अनंत संख्या के साथ गद्देदार है, यह या तो शीर्ष 0 या अतिरिक्त 0 पॉप होगा)


अच्छा काम, लेकिन सबसे छोटा समाधान नहीं: codegolf.stackexchange.com/a/118520/31203
MegaTom


4

हेक्सागोनी ,7 6 बाइट्स

)?<@.!

विस्तारित:

 ) ?
< @ .
 ! .

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

मार्टिन को धन्यवाद दिया 1 बाइट बचाया!

यदि संख्या नॉनजरो है तो उसे प्रिंट करें, अन्यथा उसमें एक जोड़ें और इसके बजाय प्रिंट करें।



4

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

lambda n:n or 1

सिर्फ n or 16 बाइट्स ही क्यों ?
DReispt

2
क्योंकि यह सिर्फ एक स्निपेट है, जबकि हम आम तौर पर पूर्ण कार्यक्रमों या कार्यों के साथ जवाब देते हैं। मुझे यकीन नहीं है कि यह स्पष्ट रूप से कुछ नियमों में कहीं लिखा गया है, लेकिन कम से कम यह वास्तविक मानक है।
डानिएरो

ट्रॉटोप्लेक्स का हवाला देते हुए : The rules are not terribly clear. I think we have a consensus on meta that REPLs count, but as a separate language, which would allow snippets in many cases, but snippets are not permitted according to this meta post-> codegolf.meta.stackexchange.com/questions/2419/…
daniero

@trichoplax 1or nहमेशा लौटेगा 1, है ना?
डेनिएरो

1
उसी 15-बाइट्स बाइट-काउंट के साथ वैकल्पिक:lambda n:n|1>>n
केविन क्रूज़सेन

4

डीसी, 11 बाइट्स

[1]sf?d0=fp

[1]sfमैक्रो को रजिस्टर f में संग्रहीत करता है जो स्टैक के शीर्ष पर 1 को धक्का देता है, ?इनपुट पढ़ता है, d0=fमैक्रो च चलाता है यदि इनपुट 0 था, pस्टैक के शीर्ष को प्रिंट करता है।

परीक्षा:

$ dc -e "[1]sf?d0=fp" <<< 0
1
$ dc -e "[1]sf?d0=fp" <<< 1
1
$ dc -e "[1]sf?d0=fp" <<< 42
42

4

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

=A1+(A1=0)

यह स्पष्ट 'IF' स्टेटमेंट सॉल्यूशन पर 4 बाइट्स बचाता है =IF(A1=0,1,A1)


3
और 1 बाइट कम स्पष्ट से कम है=A1+NOT(A1)
इंजीनियर टोस्ट

4

जावा 8, 10 बाइट्स

i->i<1?1:i
  • बचत के लिए @LeakyNun को धन्यवाद - 1 बाइट
    • ध्यान नहीं दिया कि यह एक गैर-नकारात्मक पूर्णांक है

3
i==0द्वारा प्रतिस्थापित किया जा सकता हैi<1
लीक नून

4

आर, 13 बाइट्स

n=scan();n+!n

यहां, scanइनपुट मान को पढ़ने के लिए उपयोग किया जाता है nn(यानी, !n0 या 1) का निषेध जोड़ा जाता है n


3

गणितज्ञ, 9 बाइट्स

प्रति मार्टिन एंडर:

#~Max~1&

पहला विचार:

#/. 0->1&

की जगह के साथ शुद्ध समारोह 0के साथ 1। अंतरिक्ष आवश्यक है या यह सोचता है कि हम विभाजित कर रहे हैं .0


3

-L और -p झंडे के लिए पर्ल 5, 6 + 2 बाइट्स

$_||=1

स्टड से अलग लाइनों पर इनपुट लेता है। झंडे लेकर दौड़े -lp

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