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

ফ্যাক্টোরিয়ালের ডিজিটের যোগফল (C++)

একটি সংখ্যা n দেওয়া আছে। n! (ফ্যাক্টোরিয়াল) এর ডিজিটগুলোর যোগফল বের করতে হবে। বড় ফ্যাক্টোরিয়ালের জন্য ভেক্টরে ডিজিট সংরক্ষণ করে গুণ করা হয়।

উদাহরণ

#include <iostream>
#include <vector>
using namespace std;

void vectorMultiply(vector<int> &v, int x) {
    int carry = 0;
    for (int i = 0; i < v.size(); i++) {
        int res = carry + v[i] * x;
        v[i] = res % 10;
        carry = res / 10;
    }
    while (carry) { v.push_back(carry % 10); carry /= 10; }
}

int digitSumOfFact(int n) {
    vector<int> v = {1};
    for (int i = 2; i <= n; i++) vectorMultiply(v, i);
    int sum = 0;
    for (int d : v) sum += d;
    return sum;
}

int main() {
    int n = 40;
    cout << "Sum of digits in " << n << "! is: " << digitSumOfFact(n);
    return 0;
}

আউটপুট

Sum of digits in 40! is: 189
  1. সি++ প্রোগ্রাম: D দিয়ে বিভাজ্য N অঙ্কের সংখ্যা খুঁজে বের করা

  2. সি++ প্রোগ্রাম: সংখ্যা বিভাজ্য করে এমন অঙ্কগুলোর গণনা (Count of Digits Dividing the Number)

  3. C++ ব্যবহার করে এমন একটি সংখ্যা x বের করা যাতে x এবং তার ডিজিটের যোগফল n-র সমান হয়

  4. দেওয়া সংখ্যা n-এর জন্য x + x-এর অঙ্কের যোগফল = n এমন x খুঁজে বের করা C++-এ