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

N কে ১, ৩ এবং ৪ এর যোগফল হিসেবে প্রকাশ করার পদ্ধতির সংখ্যা (C++)

একটি পজিটিভ নম্বর N ইনপুট হিসেবে দেওয়া আছে। লক্ষ্য হল N-কে কতভাবে ১, ৩ এবং ৪ এর যোগফল হিসেবে প্রকাশ করা যায়, সেটি বের করা। উদাহরণস্বরূপ, N=4 হলে: ১+১+১+১, ৩+১, ১+৩, ৪ — মোট ৪ ভাবে।

উদাহরণ দিয়ে বোঝা যাক

উদাহরণ ১

ইনপুট - N=5

আউটপুট - N কে ১, ৩, ৪ এর যোগফল হিসেবে প্রকাশ করার পদ্ধতি: ৬

ব্যাখ্যা - ৫ কে নিচেরভাবে প্রকাশ করা যায়:

  • ১+১+১+১+১
  • ১+৩+১
  • ৩+১+১
  • ১+১+৩
  • ৪+১
  • ১+৪

উদাহরণ ২

ইনপুট - N=6

আউটপুট - N কে ১, ৩, ৪ এর যোগফল হিসেবে প্রকাশ করার পদ্ধতি: ৯

ব্যাখ্যা - ৬ কে নিচেরভাবে প্রকাশ করা যায়:

  • ১+১+১+১+১+১
  • ৩+১+১+১
  • ১+৩+১+১
  • ১+১+৩+১
  • ১+১+১+৩
  • ৩+৩
  • ৪+১+১
  • ১+৪+১
  • ১+১+৪

প্রোগ্রামে ব্যবহৃত পদ্ধতি

ডাইনামিক প্রোগ্রামিং ব্যবহার করে সমস্যাটি সমাধান করা হয়। অ্যারে arr[i] যেখানে i হলো নম্বর এবং arr[i] হলো সেটি ১, ৩, ৪ দিয়ে যোগফল হিসেবে প্রকাশ করার পদ্ধতির সংখ্যা।

বেস কেস:

  • arr[0]=1 (খালি যোগফল)
  • arr[1]=1 (শুধু ১)
  • arr[2]=1 (শুধু ১+১)
  • arr[3]=2 (১+১+১, ৩)

অন্যান্য নম্বর ৪, ৫... i ইত্যাদির পদ্ধতি: arr[i] = arr[i-1] + arr[i-3] + arr[i-4]।

  • পজিটিভ নম্বর N ইনপুট নিন।
  • ফাংশন Expres_sum(int N) N নিয়ে ফলাফল রিটার্ন করে।
  • অ্যারে arr[N+1] পদ্ধতির সংখ্যা সংরক্ষণের জন্য।
  • বেস কেস ইনিশিয়ালাইজ করুন: arr[0]=1, arr[1]=1, arr[2]=1, arr[3]=2।
  • i=4 থেকে i<=N পর্যন্ত লুপ: arr[i] = arr[i-1] + arr[i-3] + arr[i-4]।
  • লুপ শেষে arr[N] রিটার্ন করুন।

উদাহরণ কোড

#include <bits/stdc++.h>
using namespace std;

int Expres_sum(int N) {
    int arr[N + 1];
    arr[0] = 1;
    arr[1] = 1;
    arr[2] = 1;
    arr[3] = 2;
    for (int i = 4; i <= N; i++) {
        arr[i] = arr[i - 1] + arr[i - 3] + arr[i - 4];
    }
    return arr[N];
}

int main() {
    int N = 5;
    cout << "Count of different ways to express N as the sum of 1, 3 and 4 are: " << Expres_sum(N);
    return 0;
}

উপরের কোড রান করলে নিচের আউটপুটটি পাওয়া যাবে:

আউটপুট

Count of different ways to express N as the sum of 1, 3 and 4 are: 6
  1. m + sum(m) + sum(sum(m)) = N সन्तুষ্ট করে এমন সংখ্যা গণনা (C++)

  2. সি++-এ সমান যোগফল এবং XOR

  3. ফিবোনাচ্চি সংখ্যা যেন করা নোডের ওজন এবং X-এর যোগফল C++-এ

  4. C++-এ 1 x m আকারের টাইল দিয়ে n x m আকারের ফ্লোর টাইল করার পদ্ধতির সংখ্যা গণনা