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

n দিয়ে শুরু হওয়া এবং কনsekutিভ ডিফারেন্স k-এ সীমাবদ্ধ সিকোয়েন্স প্রিন্ট করা C++-তে


এই সমস্যায়, তিনটি ভেরিয়েবল n, s, এবং k দেওয়া থাকে এবং আমাদের সব সম্ভাব্য সিকোয়েন্স প্রিন্ট করতে হবে যা n নম্বর দিয়ে শুরু হয়, দৈর্ঘ্য s, এবং কনsekutিভ এলিমেন্টগুলোর অভolute ডিফারেন্স k-এর চেয়ে কম।

উদাহরণ দিয়ে বুঝি:

ইনপুট: n = 3, s = 3 , k = 2 আউটপুট: 3 3 3 3 3 4 3 3 2 3 4 4 3 4 5 3 4 3 3 2 2 3 2 3 3 2 1

এই সমস্যায়, আমাদের অভсолют ডিফারেন্স k-এর চেয়ে কম করতে হবে। এর জন্য, আমরা এমন একটি সিকোয়েন্স পেতে পারি যার এলিমেন্টগুলো বড় হলে পজিটিভ ডিফারেন্স এবং ছোট হলে নেগেটিভ ডিফারেন্স मिलবে।

এই জন্য, আমরা n দিয়ে শুরু করব এবং প্রতিটি কনsekutিভ পজিশনের এলিমেন্টের জন্য রিকার্শিভ কল করব। 0 থেকে k-1 পর্যন্ত লুপ চালিয়ে সেটি নম্বরটিতে যোগ করব। একইভাবে নেগেটিভ দিকের জন্যও করব।

C++ উদাহরণ

#include <bits/stdc++.h> using namespace std; void printConsicutiveNumbers(vector<int>& v, int n, int s, int k){ if (s == 0) { for (int i = 0; i < v.size(); i++) cout<<v[i]<<" "; cout << endl; return; } for (int i = 0; i < k; i++) { v.push_back(n + i); printConsicutiveNumbers(v, n + i, s - 1, k); v.pop_back(); } for (int i = 1; i < k; i++) { v.push_back(n - i); printConsicutiveNumbers(v, n - i, s - 1, k); v.pop_back(); } } int main(){ int n = 3, s = 3, k = 2; cout<<"The sequence is :\n"; vector<int> v; v.push_back(n); printConsicutiveNumbers(v, n, s - 1, k); return 0; }

আউটপুট

সিকোয়েন্সটি হলো:

3 3 3 3 3 4 3 3 2 3 4 4 3 4 5 3 4 3 3 2 2 3 2 3 3 2 1
  1. বিজোড় এবং জোড় সংখ্যক নোড वाले ট্রি লেভেল প্রিন্ট করা C++-তে

  2. ৩ এবং ৫ দ্বারা বিভাজ্য সংখ্যা প্রিন্ট (C++)

  3. Go এবং C++-এর পার্থক্য

  4. C++-এ অ্যারেতে সব জোড়া সन्नিহিত উপাদানগুলোর tuyệt দায়ক পার্থক্য