কম্পিউটার

C++ এ 1, 3 এবং 4 এর যোগফল হিসাবে N প্রকাশ করার বিভিন্ন উপায়ে গণনা


ইনপুট হিসাবে একটি ধনাত্মক সংখ্যা N দেওয়া হয়েছে। লক্ষ্য হল আমরা N কে শুধুমাত্র 1s, 3s এবং 4s এর যোগফল হিসাবে প্রকাশ করতে পারি এমন সংখ্যা খুঁজে বের করা। উদাহরণস্বরূপ, যদি N 4 হয় তবে এটিকে 1+1+1+1, 3+1, 1+3, 4 হিসাবে উপস্থাপন করা যেতে পারে তাই উপায়ের সংখ্যা 4 হবে।

আসুন উদাহরণ দিয়ে বোঝা যাক।

উদাহরণস্বরূপ

ইনপুট - N=5

আউটপুট - 1, 3 এবং 4 এর যোগফল হিসাবে N প্রকাশ করার বিভিন্ন উপায়ের সংখ্যা হল:6

ব্যাখ্যা - 5 হিসাবে উপস্থাপন করা যেতে পারে:

  • 1+1+1+1+1
  • 1+3+1
  • 3+1+1
  • 1+1+3
  • 4+1
  • 1+4

ইনপুট - N=6

আউটপুট - 1, 3 এবং 4 এর যোগফল হিসাবে N প্রকাশ করার বিভিন্ন উপায়ের সংখ্যা হল:9

ব্যাখ্যা - 9 হিসাবে উপস্থাপন করা যেতে পারে:

  • 1+1+1+1+1+1
  • 3+1+1+1
  • 1+3+1+1
  • 1+1+3+1
  • 1+1+1+3
  • 3+3
  • 4+1+1
  • 1+4+1
  • 1+1+4

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

এই পদ্ধতিতে আমরা 1, 3 এবং 4 এর যোগফল হিসাবে N-এর সংখ্যা গণনা করার জন্য একটি গতিশীল প্রোগ্রামিং পদ্ধতি ব্যবহার করব। অ্যারে অ্যার[i] নিন যেখানে আমি সংখ্যাটি উপস্থাপন করে এবং arr[i] এটিকে উপস্থাপন করার উপায় হিসাবে। যোগফল হিসাবে।

বেস কেস

হবে

arr[0]=0 (কোন উপায় নেই)

arr[1]=1 ( শুধুমাত্র একটি উপায় , 1 )

arr[2]=1 ( শুধুমাত্র একটি উপায়, 1+1 )

arr[3]=2 ( 1+1+1, 3 )

এখন অন্যান্য সংখ্যা 4, 5 … i ইত্যাদির উপায় থাকবে arr[i-1]+arr[i-3]+arr[i-4]।

  • ইনপুট হিসাবে একটি ধনাত্মক সংখ্যা N নিন।
  • ফাংশন Expres_sum(int N) N নেয় এবং N কে 1, 3 এবং 4 এর যোগফল হিসাবে প্রকাশ করার বিভিন্ন উপায়ের গণনা প্রদান করে।
  • উপায়গুলির গণনা সংরক্ষণ করতে অ্যারে অ্যারে[N+1] নিন।
  • বেস কেস শুরু করুন arr[0] =1, arr[1] =1, arr[2] =1 এবং arr[3] =2।
  • i=4 থেকে i<=N.
  • বাকি মানগুলির জন্য অতিক্রম করুন
  • Arr[i - 1] + arr[i - 3] + arr[i - 4] এর যোগফল হিসাবে টেকওয়েস arr[i]।
  • ফর লুপের শেষে ফিরে আসে 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 + যোগফল(m) + যোগফল(সমষ্টি(m)) =C++ এ N

  2. C++ এ সমান সমষ্টি এবং XOR

  3. নোডগুলি গণনা করুন যার সমষ্টি X এর সাথে C++ এ একটি ফিবোনাচি সংখ্যা

  4. C++ এ 1 x m আকারের টাইলস ব্যবহার করে n x m আকারের মেঝে টালি করার উপায় গণনা করুন