कई (दो?) FizzBuzz से संबंधित चुनौतियों के मद्देनजर हाल ही में PPCG पर पोस्ट की गई, मुझे अपने साथ आने के लिए लुभाया गया है। देखो ...
फिज बज़ लाइटयर
एक प्रोग्राम या फ़ंक्शन लिखें जो पूर्णांक लेता है nऔर FizzBuzzकिसी भी संख्या को 15 से विभाज्य के लिए प्रिंट करता है , किसी Fizzभी संख्या को 3 से विभाज्य के Buzzलिए , और 5 से किसी भी संख्या के लिए विभाज्य, (और सहित) तक n। सभी के लिए आउटपुट को iएक नई पंक्ति द्वारा पालन किया जाना चाहिए। लेकिन एक मोड़ है!
आपके द्वारा प्रिंट किए जाने वाले हर तीसरी बार Buzz, बज़ लाइटयर अंत में आपके कॉल और क्रैश लैंड को आपके प्रोग्राम में प्रदर्शित करता है। इसके बाद वह अपना परिचय देता है - लेकिन जब से वह दुर्घटनाग्रस्त हुआ, उसने जो कुछ कहा वह आपके कार्यक्रम के आउटपुट के साथ मिल गया:
Buzz Lightyear, Space Ranger, Universe Protection Unit.
FizzBuzz Lightyear, Space Ranger, Universe Protection Unit.
(वह है, केवल उसी के Lightyear, Space Ranger, Universe Protection Unit.लिए Buzzया FizzBuzz- जो भी आपके द्वारा प्रदर्शित किया गया है, उसे आगे बढ़ाएँ। प्रमुख स्थान पर ध्यान दें)
हालाँकि, बज़ लाइटियर, स्पेस रेंजर होने के नाते उनकी बहुत तीव्र सुनवाई है, और इसलिए मुद्रण FizzBuzzआपके Buzzगिनती की ओर गिना जाएगा ।
फिर, बज़ आपके कंप्यूटर को उस सभी बुराई आउटपुट से बचाने के लिए चारों ओर लटका हुआ है, जब तक कि आप 5 से (या 15 से विभाज्य नहीं है, क्योंकि वे 5 से विभाज्य हैं,)। इसका क्या मतलब है जब तक आपको फिर से प्रिंट Buzz(या FizzBuzz) नहीं करना है, आप कुछ भी प्रिंट नहीं करते हैं।
जब आप अंततः उस स्थिति में पहुंच जाते हैं, तो बज़ प्रस्थान करता है:
To infinity and beyond!
उदाहरण आउटपुट
यह इसके लिए अपेक्षित आउटपुट है n = 25: (ध्यान दें कि यह 19 से 16 कैसे छूट जाता है)
1
2
Fizz
4
Buzz
Fizz
7
8
Fizz
Buzz
11
Fizz
13
14
FizzBuzz Lightyear, Space Ranger, Universe Protection Unit.
To infinity and beyond!
Fizz
22
23
Fizz
Buzz
नियम
वैकल्पिक अनुगामी न्यूलाइन स्वीकार्य है।
यह कोड गोल्फ है; जैसे, बाइट्स में, सबसे छोटा कोड, जीत।
मान लिया गया nकि वैध है और 15 से अधिक या उससे अधिक है (जो कि जब पहली बार मानक फ़िज़बज़ से चुनौती मिलती है)
जब आप "बज़ काउंटर" (जो दोनों की गिनती करता है Buzzऔर FizzBuzz) 3 हिट करता है, तो बज़ आपको बधाई देता है ; जब वह Buzz( अगले , फिर से, दोनों) BuzzऔरFizzBuzz ) छपा है।
जिस संख्या में वह प्रस्थान करता है वह अगले "बज़ काउंटर" की ओर नहीं गिना जाता है; इसके बजाय आपको Buzz0. से फिर से es की गिनती शुरू करनी चाहिए । उदाहरण के लिए, n = 25(उदाहरण आउटपुट) के साथ चलने वाला एक प्रोग्राम 1 के "बज़ काउंटर" के साथ समाप्त होना चाहिए, क्योंकि Buzzपिछली बार जब वह रवाना हुआ था तब से कितनी बार मुद्रित किया गया था।
यदि nबज़ की एक आवक और उसके एक प्रस्थान (यानी, वह अभी भी वहाँ है - आप कुछ भी नहीं छाप रहे हैं) के बीच गिरता है, तो सुशोभित समाप्ति की उम्मीद है। इसलिए, आउटपुट की अंतिम पंक्ति उसका परिचय होगी
मानक खामियों को मना किया जाता है।
nबज़ लाइटेयर के आगमन और उसके प्रस्थान के बीच में आने पर अपेक्षित व्यवहार को स्पष्ट कर सकते हैं ?