কম্পিউটার টিউটোরিয়াল

সি++-এ নিয়মিত N-ভুজ বহুভুজে তৃতীয় ব্যক্তির অবস্থান নির্ধারণ


একটি N-ভুজ বহুভুজে দুজন শিশু A এবং B ভার্টেক্সে দাঁড় করলে আমাদের তৃতীয় ব্যক্তি কোন ভার্টেক্সে দাঁড় করবে যাতে সে A এবং B উভয়ের কাছে পৌঁছাতে ন্যূনতম জাম্প দরকার হয়।

দুটি শর্ত মনে রাখতে হবে: বহুভুজের ভার্টেক্সগুলো ক্লকওয়াইজ নম্বর দেওয়া আছে এবং যদি একাধিক উত্তর থাকে তবে সবচেয়ে ছোট নম্বরিত ভার্টেক্স বেছে নেওয়া হবে।

vertexPosition(int sides, int vertexA, int vertexB) ফাংশন বহুভুজের বাহু সংখ্যা এবং ভার্টেক্স A ও B-এর পজিশন নেয়। ফর লুপ ১ থেকে শুরু হয় এবং i বাহু সংখ্যা চেয়ে কম বা সমান থাকতে পর্যন্ত চলে। যদি i vertexA এবং vertexB-এর সমান না হয় তবে i এবং vertexA-এর tuyệt দ্রিশ্য পার্থক্য এবং i এবং vertexB-এর tuyệt দ্রিশ্য পার্থক্য ক্যালকুলেট করে x এবং y-তে সেভ করা হয়।

int vertexPosition(int N, int vertexA, int vertexB){ 
    int tempSum = INT_MAX; 
    int sum = 0; 
    int position = 0; 
    for (int i = 1; i <= N; i++) { 
        if (i != vertexA && i != vertexB){ 
            int x = abs(i - vertexA); 
            int y = abs(i - vertexB);

পরবর্তীতে x এবং y-এর যোগফল sum ভেরিয়েবলে সেভ করা হয় এবং চেক করা হয় sum tempSum চেয়ে কম কিনা। যদি কম হয় তবে বর্তমান sum মান tempSum-এ অ্যাসাইন করা হয় এবং বর্তমান ইন্ডেক্স মান position ভেরিয়েবলে অ্যাসাইন করা হয়। আমরা চেক করি নতুন sum প্রাপ্য হয়েছে কি পুরনো tempSum-এ সেভ করা sum চেয়ে কম যাতে N-এর A এবং B থেকে সবচেয়ে নিকটবর্তী পজিশন ফেরত দেয়া যায়। লুপ শেষ হলে position ফেরত দেওয়া হয়।

sum = x + y; 
if (sum < tempSum){ 
    tempSum = sum; 
    position = i; 
} 
} 
} 
return position; 
}

উদাহরণ

নিয়মিত N-ভুজ বহুভুজে তৃতীয় ব্যক্তির অবস্থান নির্ধারণের ইমপ্লিমেন্টেশন:

#include <iostream> 
using namespace std; 

int vertexPosition(int N, int vertexA, int vertexB){ 
    int tempSum = INT_MAX; 
    int sum = 0; 
    int position = 0; 
    for (int i = 1; i <= N; i++) { 
        if (i != vertexA && i != vertexB){ 
            int x = abs(i - vertexA); 
            int y = abs(i - vertexB); 
            sum = x + y; 
            if (sum < tempSum){ 
                tempSum = sum; 
                position = i; 
            } 
        } 
    } 
    return position; 
} 

int main(){ 
    int N = 6, vertexA = 2, vertexB = 4; 
    cout << "The vertex on which N should stand = " << vertexPosition(N, vertexA, vertexB); 
    return 0; 
}

আউটপুট

The vertex on which N should stand = 6
  1. C++-এ The Maze III সমস্যা সমাধান

  2. C++-এ বৃত্তে ডায়ামেট্রিক্যালি অপোজিট পজিশনে থাকা ব্যক্তির অবস্থান

  3. সি++ প্রোগ্রাম: সিলিন্ডারের পরিসীমা (Perimeter) নির্ণয়

  4. ম্যাট্রিক্সে চূড়ান্ত কোষের অবস্থান নির্ণয় করা C++-এ