কম্পিউটার

জাভাতে ন্যূনতম সংখ্যক বোমা


এখানে সমস্যা বিবৃতি হল ন্যূনতম সংখ্যক বোমা হামলা সহ একটি বিল্ডিংয়ের কক্ষে গুন্ডাদের হত্যা করা। রুম 1 থেকে n হিসাবে লেবেল করা হয়. গুন্ডারা প্রথম বোমা হামলায় আহত হয় এবং দ্বিতীয়টিতে মারা যায়। কক্ষে বোমা হামলা হলে গুণ্ডারা বিল্ডিংয়ের সবচেয়ে কাছের ঘরে বিশেষ করে পাশের ঘরে ছুটে যায়। বিল্ডিংয়ের সমস্ত গুন্ডাদের হত্যা করার জন্য কক্ষগুলিতে বোমা ফেলার জন্য কতগুলি বোমা হামলার প্রয়োজন তা আমাদের অবশ্যই গণনা করতে হবে৷

উদাহরণ দিয়ে বোঝা যাক

ইনপুট - রুমের int সংখ্যা =3

আউটপুট −মোট বোমা বিস্ফোরণ প্রয়োজন

4

2 1 3 2

ব্যাখ্যা − এখানে ন্যূনতম সংখ্যক বোমার প্রয়োজন 4. আসুন বিবেচনা করা যাক আমরা প্রথমে 2য় রুমে বোমা মারব, গুন্ডারা নিজেদের বাঁচাতে 1ম বা 3য় রুমে ছুটে যাবে। তারপর আমরা প্রথম কক্ষে বোমা বর্ষণ করি, এখানে ২য় কক্ষের হামলায় আহত গুন্ডাদের মধ্যে কয়েকজন মারা যাবে এবং ১ম কক্ষে লুকিয়ে থাকা গুন্ডারা আহত হয়ে ২য় রুমে ছুটে যায় কারণ এটি তাদের সবচেয়ে কাছে। এখন আমরা এখানে ৩য় রুমে বোমা মারলাম ২য় রুমে বোমা হামলার গুন্ডারা লুকিয়ে ছিল তাই ৩য় রুমে বোমা হামলায় তারা মারা যায়, আর ৩য় রুমে লুকিয়ে থাকা গুন্ডারাও ছুটে যাবে নিকটস্থ রুমে অর্থাৎ ২য় রুমে শেষ পর্যন্ত আমরা বোমা ছুঁড়ে। এখানে ২য় কক্ষে ৩য় এবং ১ম কক্ষের আহত গুন্ডা মারা যায় এবং এটি আমাদের মিশন সম্পূর্ণ করে।

ইনপুট - রুমের int সংখ্যা =2

আউটপুট −মোট বোমা বিস্ফোরণ প্রয়োজন

3

২ ১ ২

ব্যাখ্যা − এখানে ন্যূনতম সংখ্যক বোমার প্রয়োজন 3. আসুন বিবেচনা করা যাক আমরা প্রথমে 2য় রুমে বোমা মারব, গুন্ডারা নিজেদের বাঁচাতে 1ম ঘরে ছুটে যাবে। তারপর আমরা প্রথম কক্ষে বোমা বর্ষণ করি, এখানে ২য় কক্ষের হামলায় আহত গুন্ডাদের মধ্যে কয়েকজন মারা যাবে এবং ১ম কক্ষে লুকিয়ে থাকা গুন্ডারা আহত হয়ে ২য় ঘরে ছুটে যায় কারণ এটি তাদের সবচেয়ে কাছে। এখন আমরা এখানে ২য় রুমে বোমা মেরেছি। প্রথম রুম বোমা হামলার গুন্ডা যারা লুকিয়ে ছিল তারা মারা যায় এবং এটি আমাদের মিশন সম্পূর্ণ করে।

নিম্নলিখিত প্রোগ্রামে ব্যবহৃত পদ্ধতি হল -

  • প্রথমে কক্ষের সংখ্যা ব্যবহারকারীর কাছ থেকে ইনপুট হিসাবে নেওয়া হয়।

  • প্রয়োজনীয় বোমার সংখ্যা (n+n/2) হিসাবে গণনা করা হয় এবং পরে মুদ্রিত হয়।

  • তারপরে আমরা বিল্ডিংয়ের সমস্ত জোড় কক্ষে বোমা মেরে তা প্রিন্ট করা হয়।

  • এর পরে আমরা বিল্ডিংয়ের বিজোড় কক্ষগুলিতে বোমা বর্ষণ করি এবং আমরা পরে সেগুলি প্রিন্ট করি।

  • অবশেষে, বোমা হামলার প্রক্রিয়া শেষ করতে আমরা আবার বিল্ডিংয়ের জোড় কক্ষে বোমা মেরে ফেলি এবং ফলাফল ব্যবহারকারীর কাছে প্রিন্ট করা হয়।

উদাহরণ

public class TP{
   public static void main(String[] args){
      int n = 8;
      System.out.println("Total Bombings required");
      System.out.println(n + n / 2);
      for (int i = 2; i <= n; i += 2)
         System.out.print(i + " ");
      for (int i = 1; i <= n; i += 2)
         System.out.print(i + " ");
      for (int i = 2; i <= n; i += 2)
         System.out.print(i + " ");
   }
}

আউটপুট

যদি আমরা উপরের কোডটি চালাই তবে এটি নিম্নলিখিত আউটপুট তৈরি করবে

Total Bombings required
12
2 4 6 8 1 3 5 7 2 4 6 8

  1. জাভা র্যান্ডম নম্বর:একটি শিক্ষানবিস গাইড

  2. কিভাবে Java Math.random ব্যবহার করবেন

  3. একটি প্রদত্ত নম্বর ফিবোনাচি নম্বর কিনা তা পরীক্ষা করার জন্য জাভা প্রোগ্রাম?

  4. জাভা 9 এ নতুন সংস্করণ পরিকল্পনা কি?