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

C++-এ মেশিনে ফ্যাক্টোরিয়াল হিসাব করা যায় এমন সর্বোচ্চ পূর্ণসংখ্যা বের করা

ফ্যাক্টোরিয়াল মান খুব দ্রুত বড় হয়। C++-এর বিল্ট-ইন টাইপ (long long) যা পর্যন্ত ধারণ করতে পারে, সেই সর্বোচ্চ পূর্ণসংখ্যা খুঁজে বের করতে হবে।

অ্যালগরিদম

  • long long ব্যবহার করে ফ্যাক্টোরিয়াল হিসাব করুন।
  • যখন ফ্যাক্টোরিয়াল নেগেটিভ হয় (ওভারফ্লো), তখন আগের মানই সর্বোচ্চ।

C++ প্রোগ্রাম

#include <iostream>
using namespace std;

int calcMaxFactVal() {
    int maxVal = 1;
    long long maxFactorial = 1;
    while (true) {
        if (maxFactorial < 0) return (maxVal - 1);
        maxVal++;
        maxFactorial *= maxVal;
    }
    return -1;
}

int main() {
    cout << "The maximum value for factorial calculation is " << calcMaxFactVal();
    return 0;
}

আউটপুট: The maximum value of an integer for which factorial can be calculated on machine is 20

দ্রষ্টব্য: 20! = 2,432,902,008,176,640,000 (long long-এর রেঞ্জে)। 21! ওভারফ্লো করে।

  1. C++ এ অনসাইনড ইন্টিজারের জন্য রিস্টোরিং ডিভিশন অ্যালগরিদম

  2. C++-এ নিচ থেকে ডানে আলো ফেরাতে সর্বোচ্চ মিরর গণনা

  3. C++-এ ইন্টিজার ওভারফ্লো যাচাই করা

  4. পাইথনে বাইনারি ম্যাট্রিক্সে সেফ ডিস্ট্যান্স ফ্যাক্টর k-এর সর্বোচ্চ মান বের করা