ট্র্যাক
/
Python
Python
/
অনুশীলনী
/
বৃষ্টির ফোঁটা
বৃষ্টির ফোঁটা

বৃষ্টির ফোঁটা

সহজ

ভূমিকা

রেইনড্রপস হলো FizzBuzz চ্যালেঞ্জের কিছুটা বেশি জটিল একটি সংস্করণ, যা একটি ক্লাসিক ইন্টারভিউ প্রশ্ন।

নির্দেশনা

আপনার কাজ হলো একটি সংখ্যাকে তার সংশ্লিষ্ট বৃষ্টির ফোঁটার শব্দে রূপান্তর করা।

যদি কোনো প্রদত্ত সংখ্যা:

  • ৩ দিয়ে বিভাজ্য হয়, ফলাফলে "Pling" যোগ করুন।
  • ৫ দিয়ে বিভাজ্য হয়, ফলাফলে "Plang" যোগ করুন।
  • ৭ দিয়ে বিভাজ্য হয়, ফলাফলে "Plong" যোগ করুন।
  • ৩, ৫ বা ৭ দিয়ে বিভাজ্য নয়, তাহলে ফলাফল হবে সংখ্যাটি স্ট্রিং হিসেবে।

উদাহরণ

  • ২৮ সংখ্যাটি ৭ দিয়ে বিভাজ্য, কিন্তু ৩ বা ৫ দিয়ে নয়, তাই ফলাফল হবে "Plong".
  • ৩০ সংখ্যাটি ৩ ও ৫ দিয়ে বিভাজ্য, কিন্তু ৭ দিয়ে নয়, তাই ফলাফল হবে "PlingPlang".
  • ৩৪ সংখ্যাটি ৩, ৫ বা ৭ কোনোটিই দিয়ে বিভাজ্য নয়, তাই ফলাফল হবে "34".
Note

একটি সংখ্যা আরেকটি সংখ্যা দিয়ে নিঃশেষে বিভাজ্য কি না তা পরীক্ষা করার একটি কমন উপায় হলো রিমেইন্ডার বা মডুলাস শূন্যের সাথে তুলনা করা। এসবের একটির (বা দুটিরই) জন্য বেশিরভাগ প্রোগ্রামিং ভাষায় অপারেটর বা ফাংশন থাকে।

Python-এ এই অনুশীলনীটি কীভাবে সাজানো হয়েছে

এই অনুশীলনীটি সমাধান করার সেরা উপায় হলো Python-এর % (মডুলো) অপারেটর, যা ধনাত্মক পূর্ণসংখ্যার ভাগের ভাগশেষ রিটার্ন করে। এর অপারেটর মডিউল-এ একটি সমতুল্য মেথড আছে, operator.mod()।

Python-এর ম্যাথ মডিউল-এ আরও কিছু 'ভাগশেষ' মেথড আছে। math.fmod() %-এর মতোই কাজ করে, তবে ফ্লোট নিয়ে কাজ করে। math.remainder() ভাগের ভাগশেষ বের করার জন্য "শূন্যের সবচেয়ে কাছের ধাপ" অ্যালগরিদম ইমপ্লিমেন্ট করে। যদিও আমরা আপনাকে এই মেথডগুলোর সাথে পরিচিত হওয়ার উৎসাহ দিই, তবুও এর কোনোটিই %-এর ফলাফলের সাথে হুবহু মিলবে না, তাই এই অনুশীলনীর সাথে এগুলো ব্যবহারের সুপারিশ করা হয় না।

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

GitHub-এর মাধ্যমে সম্পাদনা করুন লিংকটি একটি নতুন উইন্ডো বা ট্যাবে খোলে
Python Exercism

বৃষ্টির ফোঁটা শুরু করতে প্রস্তুত?

Exercism-এ সাইন আপ করুন, Python ট্র্যাকের 17টি কনসেপ্ট146টি অনুশীলনী আর সত্যিকারের মানুষের মেন্টরিং দিয়ে শিখুন ও দক্ষ হয়ে উঠুন, সম্পূর্ণ বিনামূল্যে।

ডিপ ডাইভ: বৃষ্টির ফোঁটা!

কিছু সমাধান ঘুরে দেখুন, যেখানে আছে ফাংশনাল পাইপলাইন, ম্যাট্রিক্স গুণ, ম্যাক্রো দিয়ে তৈরি আগেই হিসাব করে রাখা টেবিল-ভিত্তিক সমাধান, অবজেক্ট ওরিয়েন্টেড পদ্ধতি, Python ও TCL-এর চমকপ্রদ ব্যবহার, আর একটি এন্টারপ্রাইজ সংস্করণ।