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

C++-এ শেষ K সংখ্যার গুণফল বের করা


ProductOfNumbers ক্লাস ইমপ্লিমেন্ট করতে হবে যা দুটি মেথড সাপোর্ট করে −

  • add(int num): বর্তমান সংখ্যা লিস্টের শেষে num যোগ করুন।

  • getProduct(int k): বর্তমান লিস্টের শেষ k সংখ্যার গুণফল রিটার্ন করুন।

আমরা ধরে নিতে পারি বর্তমান লিস্টে সবসময় কমপক্ষে k সংখ্যা থাকে। ইনপুট: add(3), add(0), add(2), add(5), add(4), getProduct(2), getProduct(3), getProduct(4), add(8), getProduct(2) — আউটপুট (প্রতিটি ফাংশন কলের পরে):

[3], [3, 0], [3, 0, 2], [3, 0, 2, 5], [3, 0, 2, 5, 4], then (5 * 4) = 20, then (2 * 5 * 4) = 40, then (0 * 2 * 5 * 4) = 0, then [3, 0, 2, 5, 4, 8], then (4 * 8) = 32.

সমাধানের ধাপগুলো:

  • ইনিশিয়ালাইজেশনে একটি অ্যারে তৈরি করুন এবং ১ ইনসার্ট করুন

  • add() মেথড num নেবে

    • যদি num 0 হয়, তবে অ্যারে ক্লিয়ার করে ১ ইনসার্ট করুন, অন্যথায় লাস্ট_এলিমেন্ট * num অ্যারেতে পশ করুন

  • getProduct() মেথড k ইনপুট নেবে

    • n := অ্যারের সাইজ

    • যদি k > n - 1 হয়, তবে 0 রিটার্ন করুন, অন্যথায় dp[n - 1] / dp[n – k – 1]

উদাহরণ (C++)

নিচের ইমপ্লিমেন্টেশন দেখুন ভালো বুঝতে −

#include <bits/stdc++.h> using namespace std; class ProductOfNumbers { public:    vector <int> dq;    ProductOfNumbers() {       dq.push_back(1);    }    void add(int num) {       if(num == 0){          dq.clear();          dq.push_back(1);       }       else{          dq.push_back(dq.back() * num);       }    }    int getProduct(int k) {       int n = (int)dq.size();       return k > n - 1? 0 : dq[n - 1] / dq[n - k - 1];    } }; main(){    ProductOfNumbers ob;    (ob.add(3));    (ob.add(0));    (ob.add(2));    (ob.add(5));    (ob.add(4));    cout << (ob.getProduct(2)) << endl;    cout << (ob.getProduct(3)) << endl;    cout << (ob.getProduct(4)) << endl;    (ob.add(8));    cout << (ob.getProduct(2)) << endl; }

ইনপুট

add(3) add(0) add(2) add(5) add(4) getProduct(2) getProduct(3) getProduct(4) add(8) getProduct(2)

আউটপুট

20 40 0 32
  1. C++-তে অ্যারেতে থাকা সব প্রাইম নম্বরের গুণফল বের করা

  2. C++-এ ++ অপারেটর ব্যবহার করে দুটি সংখ্যা যোগ করা

  3. দুই সংখ্যা গুণ করার C++ প্রোগ্রাম (অপারেটর দিয়ে এবং ছাড়া)

  4. C++ প্রোগ্রাম: দুটি সংখ্যা যোগ করা (Addition)