चॉकलेट बार खाओ


11

मेरे पास एक चॉकलेट बार है और मुझे इसे खाने में मदद की ज़रूरत है ताकि आप बस ऐसा करने के लिए एक कार्यक्रम लिखेंगे।

व्याख्या

पहली पंक्ति इनपुट है। उदाहरणों को एक खाली रेखा द्वारा अलग किया जाता है।

7
   ____
 __|__|
|__|__|
|__|__|
|__|__|

6
_______
|__|__|
|__|__|
|__|__|

5
   ____
 __|__|
|__|__|
|__|__|

0


1
   ____
   |__|

कल्पना

उम्मीद है कि उदाहरण स्पष्ट रूप से इस चुनौती को निर्दिष्ट करते हैं लेकिन किसी भी संभावित भ्रम से बचने के लिए यहां एक युक्ति है:

आपके पास एक एकल वैकल्पिक अनुगामी / अग्रणी व्हाट्सएप हो सकता है

एक इनपुट 0एक खाली आउटपुट है।

यदि इनपुट समान है, तो शीर्ष पंक्तियाँ इस तरह दिखती हैं:

_______
|__|__|

यदि यह विषम है, तो शीर्ष पंक्ति है:

   ____
   |__|

यदि यह विषम और 1 से अधिक है, तो शीर्ष पंक्तियाँ हैं:

  ____
__|__|

निम्नलिखित पंक्तियाँ हैं:

|__|__|

तक के उदाहरणों की संख्या |__|इनपुट के समान है


इनपुट के लिए आउटपुट क्या है 1? क्या इनपुट का 0समर्थन करने की आवश्यकता है?
दरवाज़े

@Doorknob हाँ, मैंने चुनौती को अद्यतन किया है
डाउनग्रेड

1. हम एक समारोह प्रस्तुत कर सकते हैं? 2. क्या हम STDIN / फ़ंक्शन तर्क से इनपुट ले सकते हैं? 3. क्या हमें एक या सभी पुनरावृत्तियों का उत्पादन करना है?
yyny

@YoYoYonnY हाँ, डिफ़ॉल्ट रूप से आप कर सकते हैं (यह लिंक आपके दूसरे प्रश्न का भी उत्तर देता है) । मुझे यकीन नहीं है कि आप पुनरावृत्तियों से क्या मतलब है। उदाहरणों पर एक नज़र डालें, तो आपको बस इतना करना होगा
डाउगाट

क्या प्रमुख रिक्त लाइनों की अनुमति है?
नील

जवाबों:



4

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

कोड गोल्फिंग के लिए हास्केल कभी महान नहीं रहा ...

b="\n|__|__|"
h="   ____\n "
f 1=h++"  |__|"
f 2="_______"++b
f 3=h++"__|__|"++b
f n=f(n-2)++b
f _=""

यह आप कैसे देखते है उस पर निर्भर करता है। जावा> पायथन> हास्केल> गोल्फलैंग। मैं अजगर का उपयोग करता हूं;)
J Atkin

@JAtkin मेरे PHP उत्तर को अच्छी तरह से देखें, फिर आप देखें कि सबसे खराब
timmyRS

3

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

x=>(x%2?`   ____
 ${x<2?"  ":"__"}|__|`:x?"_______":"")+`
|__|__|`.repeat(x/2)

मेरे जाप जवाब के रूप में एक ही तकनीक का उपयोग करता है, और आश्चर्यजनक रूप से बहुत लंबा नहीं है ...


1

सी, 104 102 बाइट्स

f(x){x?x%2?printf("   ____\n%3s|__|\n",x<2?"":"__"):puts("_______"):0;for(x/=2;x>0;x--)puts("|__|__|");}

शायद मैं इसे सुधारने के लिए कुछ प्रिंटफ प्रवंचना का उपयोग कर सकता हूं ...
जाहिर है कि मैं कर सकता हूं


1

S, 53 चार्ट / 67 बाइट्स

ï%2?`   ⟮__⟯Ⅰ
 ⦃ï<2?⍞  :⍞Ⅰ⦄|Ⅰ|`:ï?⍘_ď7:⬯⦄
|Ⅰ|Ⅰ|`ď ï/2

Try it here (Firefox only).

यह जावास्क्रिप्ट ES6 उत्तर के समान है, भले ही मैंने इसे स्वतंत्र रूप से पाया। जब मैं गोल्फ खत्म करता हूं, तो आने के लिए स्पष्टीकरण।


1

PHP, 134 chars

<?$i=$argv[1];if($i>0){echo($i%2===0?"_______\n|__":"   ____\n".($i>1?"___":"   "))."|__|\n";echo str_repeat("|__|__|\n",($i-1)/2);}?>

टिप्पणियाँ:

  • PHP को कोड गोल्फिंग के लिए नहीं बनाया गया था
  • मुझे यकीन है कि FUN इस स्निपेट को बना रहा था
  • यदि कोई त्रुटि अपरिभाषित है, तो यह एक त्रुटि फेंकता है
  • किसी भी मदद करने के लिए इसे कम सराहना की है।


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