ফিজ বাজ লাইটায়য়ার


9

পিপিসিজিতে সম্প্রতি পোস্ট করা অনেক (দুটি?) ফিজবজ-সম্পর্কিত চ্যালেঞ্জের পরিপ্রেক্ষিতে আমাকে নিজেরাই সামনে আসতে প্ররোচিত করা হয়েছে। দেখ ...

ফিজ বাজ লাইটায়য়ার

এমন একটি প্রোগ্রাম বা ফাংশন লিখুন যা কোনও পূর্ণসংখ্যা গ্রহণ করে nএবং FizzBuzz15 দ্বারা বিভাজ্য যে Fizzকোনও সংখ্যার Buzzজন্য , 3 দ্বারা বিভাজ্য যে কোনও সংখ্যার জন্য , এবং 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: (এটি কীভাবে 16 এর মধ্য দিয়ে যায় 19 দেখুন)

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

বিধি

Lineচ্ছিক পেছনের নতুন লাইনটি গ্রহণযোগ্য।

এটি কোড গল্ফ; যেমন, সংক্ষিপ্ততম কোড, বাইটে, জিততে।

অনুমান করা হয়েছে যেটি nবৈধ এবং 15 এর চেয়ে বড় বা সমান (এটি যখন চ্যালেঞ্জটি প্রথমে স্ট্যান্ডার্ড ফিজবজ থেকে বিচ্যুত হয়)

যখন "Buzz- এ কাউন্টার" (যা গন্য উভয় বাজ তোমাদের শুভেচ্ছা জানাচ্ছেন Buzzএবং FizzBuzz) হিট 3; পরবর্তী Buzz(আবার, উভয় Buzzএবং উভয় FizzBuzz) মুদ্রিত হওয়ার পরে সে চলে যায় ।

তিনি যে নম্বরটি প্রস্থান করেন তা পরবর্তী "বাজ কাউন্টার" -র দিকে গণনা করে না; পরিবর্তে আপনাকে Buzz0 থেকে আবার গণনা শুরু করা উচিত উদাহরণস্বরূপ, একটি প্রোগ্রাম n = 25(উদাহরণস্বরূপ আউটপুট) দিয়ে চলমান 1 টির "বাজ কাউন্টার" দিয়ে শেষ হওয়া উচিত, যেহেতু Buzzশেষ সময় তিনি চলে যাওয়ার পর থেকে কতবার মুদ্রিত হয়েছিল।

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

স্ট্যান্ডার্ড লুফোলগুলি নিষিদ্ধ।


1
nবাজ লাইটয়ারের আগমন এবং তার প্রস্থানের মধ্যে যখন পড়ে তখন আপনি কি প্রত্যাশিত আচরণটি পরিষ্কার করতে পারেন ?
nderscore

কেবল প্রোগ্রামটি ছেড়ে দিন। আমি নিয়মগুলি এক সেকেন্ডে সম্পাদনা করব
ওসুকা_২২

উত্তর:


5

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

  • -7 বাইট : বাজ লার্জ লাইয়ার লজিকে বাজ টার্নারি এক্সপ্রেশনে স্থানান্তরিত করা হয়েছে।

f=(n,s=i=b=_='')=>i++<n?f(n,s+`${(i%3?_:'Fizz')+(i%5?_:`Buzz${++b%3?_:` Lightyear, Space Ranger, Universe Protection Unit.${(i+=5)>n?_:`
To infinity and beyond!`}`}`)||i}
`):s
<!-- snippet demo: -->
<input oninput=o.innerHTML=f(this.value)>
<pre id=o>


3

পাইথন 2 , 185 178 172 বাইট

for i in range(input()):
 if-~i%20<16:print i%20/19*"To infinity and beyond!"or i%3/2*"Fizz"+i%5/4*"Buzz"+i%20/14*" Lightyear, Space Ranger, Universe Protection Unit."or-~i

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

ব্যাখ্যা

পর্যবেক্ষণ: বাজ লাইটিয়ায়ার তৃতীয় "বাজ নম্বর" এ এসে চতুর্থ স্থানে প্রস্থান করবে। "বাজ সংখ্যা" পাঁচটির গুণক multip সুতরাং, বাজেজের চলাচলগুলি দৈর্ঘ্যের 20 চক্রতে ঘটে।

আমরা iইনপুট -1 এর মাধ্যমে 0 থেকে প্রতিটি লুপ করি । (এর অর্থ এটি iআমরা যে প্রকৃত সংখ্যায় বিবেচনা করছি তার চেয়ে সর্বদা কম))

ব্যবহার -~iজন্য একটি শর্টকাট হিসাবে i+1, if-~i%20<16:চেক যদি i+1গেলিক ভাষার 20, 15 বা কম বয়সী। (যদি এটি 16 থেকে 19 হয় তবে বাজ লাইটিয়ায়ার উপস্থিত রয়েছে এবং আমরা কিছু আউটপুট দিতে চাই না))

যদি বিবৃতি ভিতরে, আমরা মুদ্রণ করতে চান To infinity and beyond!20 প্রতিটি একাধিক অন - যে, প্রত্যেক সময় i%2019 (মনে রাখবেন যে iপ্রকৃত সংখ্যা এর চেয়ে কম হয়।) যেহেতু i%2019 তার চেয়ে অনেক বেশী হতে হবে না, i%20/19আকাঙ্ক্ষিত জনের মধ্যে 1 জন হতে হবে কেস, অন্যথায় <1 পাইথন 2, স্বাচ্ছন্দ্যে, স্ট্রিংগুলি দ্বারা গুণ করার সময় ভাসমান কাটায়, সুতরাং অন্যথায় 19 i%20/19*"..."হলে পুরো স্ট্রিং দেয় ।i%20""

যদি উপরের কেসটি প্রযোজ্য হয়, আমরা অন্য কিছু মুদ্রণ করি না। তবে যদি প্রথম ""প্রকাশটি (যা মিথ্যা) হয় তবে আমরা orচালিয়ে যাব। জন্য এক্সপ্রেশন Fizz, Buzzএবং ভূমিকা উপরে একইভাবে নির্ণিত এবং একসঙ্গে যোগ করা হয়।

সবশেষে, যদি এগুলির কোনওটিই প্রয়োগ না হয়, তবে আমরা নিজেই নম্বরটি মুদ্রণ করি -~i


2

05AB1E , 97 93 90 বাইট

>GN"FizzBuzz"2äN35SÖÏJ)˜1(è“To infinity€ƒ—°!“)N20%©_è®15Q” Lightyear,‡²ìÓ,ªÜŠí‰¿.”×J®16‹i,

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

আরও গল্ফ করার পরে আসার ব্যাখ্যা।

বিকল্প 97 বাইট সংস্করণ

>G"FizzBuzz"2ä” Lightyear,‡²ìÓ,ªÜŠí‰¿.”)˜N•9¨•3äR%15%_ÏJ“To infinity€ƒ—°!“)N20ÖèN)˜é®èN20%15›i\},
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.