ট্র্যাক
/
C#
C#
/
অনুশীলনী
/
গুণিতকের যোগফল
গুণিতকের যোগফল

গুণিতকের যোগফল

সহজ

ভূমিকা

আপনি এমন একটি প্রতিষ্ঠানের হয়ে কাজ করেন, যেটি অনলাইনে খেলার জন্য একটি ফ্যান্টাসি-সারভাইভাল গেম বানায়।

কোনো খেলোয়াড় একটি লেভেল শেষ করলে তাকে এনার্জি পয়েন্ট দেওয়া হয়। কতটা এনার্জি দেওয়া হবে, সেটা নির্ভর করে খেলোয়াড় ওই লেভেলটি ঘুরে দেখতে গিয়ে কোন কোন জাদুকরী আইটেম পেয়েছে তার উপর।

নির্দেশনা

আপনার কাজ হলো এমন কোড লেখা, যা হিসাব করে দেয় খেলোয়াড়রা একটি লেভেল সম্পন্ন করলে তাদের কত এনার্জি পয়েন্ট দেওয়া হয়।

কত পয়েন্ট দেওয়া হবে তা দুটি বিষয়ের উপর নির্ভর করে:

  • খেলোয়াড় যে লেভেলটি সম্পন্ন করেছে (একটি সংখ্যা)।
  • ওই লেভেলে খেলোয়াড় যে জাদু-সামগ্রীগুলো সংগ্রহ করেছে, তার প্রতিটির বেস ভ্যালু।

এনার্জি পয়েন্ট দেওয়া হয় নিচের নিয়মগুলো অনুযায়ী:

  1. প্রতিটি জাদু-সামগ্রীর জন্য তার বেস ভ্যালুটি নিন, তারপর ওই ভ্যালুর এমন সব গুণিতক খুঁজে বের করুন যেগুলো লেভেল সংখ্যাটির চেয়ে ছোট।
  2. সংখ্যাগুলোর সেট একত্র করুন।
  3. ডুপ্লিকেটগুলো সরিয়ে দিন।
  4. বাকি থাকা সব সংখ্যার যোগফল বের করুন।

চলুন একটি উদাহরণ দেখি:

খেলোয়াড়টি লেভেল ২০ সম্পন্ন করেছে এবং ৩ ও ৫ বেস ভ্যালুর দুটি জাদু-সামগ্রী পেয়েছে।

খেলোয়াড়ের পাওয়া এনার্জি পয়েন্ট হিসাব করতে হলে আমাদের ওই বেস ভ্যালুগুলোর লেভেল ২০-এর চেয়ে ছোট সব ইউনিক গুণিতক খুঁজে বের করতে হবে।

  • ২০-এর চেয়ে ছোট ৩-এর গুণিতক: {3, 6, 9, 12, 15, 18}
  • ২০-এর চেয়ে ছোট ৫-এর গুণিতক: {5, 10, 15}
  • সেটগুলো একত্র করে ডুপ্লিকেটগুলো বাদ দিন: {3, 5, 6, 9, 10, 12, 15, 18}
  • ইউনিক গুণিতকগুলোর যোগফল বের করুন: 3 + 5 + 6 + 9 + 10 + 12 + 15 + 18 = 78
  • তাই লেভেল ২০ সম্পন্ন করে ৩ ও ৫ বেস ভ্যালুর দুটি জাদু-সামগ্রী পেয়ে খেলোয়াড় ৭৮ এনার্জি পয়েন্ট পায়।

ইঙ্গিত

এই অনুশীলনীতে আপনাকে ডেটার একটি সংগ্রহ প্রসেস করতে হবে। LINQ (Language Integrated Query) ব্যবহার করে আপনি আপনার কোড সহজ করতে পারেন। আরও তথ্যের জন্য এই পৃষ্ঠাটি দেখুন।

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

গুণিতকের যোগফল শুরু করতে প্রস্তুত?

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