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

C++-এ 2^n-এর শেষ দুটি অঙ্ক বের করার প্রোগ্রাম


এই সমস্যায়, আমাদের একটি সংখ্যা N দেওয়া হয়েছে। আমাদের কাজ হল 2^n-এর শেষ দুটি অঙ্ক বের করার প্রোগ্রাম তৈরি করা C++-এ।

সমস্যা বিবরণ

শেষ দুটি অঙ্ক বের করতে। আমরা শুধু শেষ দুটি অঙ্কের গুণফল ব্যবহার করব। এবং অন্যগুলি ছেড়ে দিব গণনা ছোট রাখতে।

একটি উদাহরণ নিয়ে সমস্যাটি বুঝি,

ইনপুট: N = 12 

আউটপুট: 96

ব্যাখ্যা

2^12 = 4096

সমাধান পদ্ধতি

সমস্যাটি সমাধান করতে, একটি সরাসরি পদ্ধতি হতে পারে 2^N-এর মান বের করা এবং তারপর ১০০ দিয়ে ভাগ করলে বাকি বের করা।

উদাহরণ

#include <iostream> using namespace std; int findLastDigit(int N){    int powerVal = 1;       for(int i = 0; i < N; i++){          powerVal *= 2;       }    return powerVal%100; } int main() {    int N = 14;    cout<<"The last two digits of 2^"<<N<<" is "<<findLastDigit(N);    return 0; }

আউটপুট

The last two digits of 2^14 is 84

এই পদ্ধতি কার্যকর নয়, কারণ N-এর বড় মানের জন্য প্রোগ্রাম ওভারফ্লো হবে।

একটি ভালো পদ্ধতি হল শুধু মান থেকে ২ অঙ্ক বিবেচনা করা। এবং প্রতিটি ঘাতের জন্য দুধার গুণ করা।

2^14-এর ক্ষেত্রে, শেষ দুটি অঙ্ক 84। আমরা 84 কে দুধার গুণ করব পুরো সংখ্যার বদলে যা গণনা বাঁচাবে। তাই, (84*2)%100 = 68।

উদাহরণ

#include <iostream> using namespace std; int findLastDigit(int N){    int powerVal = 1;    for(int i = 0; i < N; i++){       powerVal = (powerVal * 2)%100;    }    return powerVal; } int main() {    int N = 15;    cout<<"The last two digits of 2^"<<N<<" is "<<findLastDigit(N);    return 0; }

আউটপুট

The last two digits of 2^15 is 68

  1. C++ ব্যবহার করে N ফ্যাক্টোরিয়ালের যোগফলের শেষ দু ডিজিট বের করা

  2. C++ প্রোগ্রাম: দুটি সিরিজের প্রথম কলিশন পয়েন্ট বের করা

  3. C++ প্রোগ্রাম: গ্রাফে দুটি নোডের মধ্যে পথ আছে কিনা চেক করা

  4. সি++ প্রোগ্রাম: গ্রাফ ম্যাট্রিক্সের বিপরীত (Inverse) নির্ণয়