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

C++-এ ধনাত্মক সংলগ্ন সংখ্যার লিস্ট যাদের যোগফল n হয় তা গণনা


ধরি আমাদের একটি সংখ্যা n আছে; আমাদের এমন লিস্টগুলোর সংখ্যা বের করতে হবে যারা ধনাত্মক সংলগ্ন (consecutive) মান দিয়ে গঠিত এবং তাদের যোগফল n।

উদাহরণস্বরূপ, ইনপুট n = 15 হলে আউটপুট হবে ৪, কারণ সম্ভাব্য লিস্ট গুলো: [1,2,3,4,5], [4,5,6], [7,8], এবং [15]।

সমাধানের ধাপসমূহ:

  • begin := 1, end := 1, x := (n + 1) / 2
  • sum := 0
  • while (end <= x):
    • sum := sum + end
    • while (sum >= n):
      • যদি sum == n হয়: count++
      • sum := sum - begin
      • begin++
    • end++
  • return count + 1

উদাহরণ

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

int solve(int n) {
    int begin = 1, end = 1, x = (n + 1) / 2, count = 0;
    long int sum = 0;
    while (end <= x) {
        sum += end;
        while (sum >= n) {
            if (sum == n)
                count++;
            sum -= begin;
            begin++;
        }
        end++;
    }
    return count + 1;
}

int main() {
    cout << (solve(15));
}

ইনপুট

15

আউটপুট

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

  2. পাইথনে k দ্বারা বিভাজ্য যোগফল वाले কনসিকিউটিভ সাবসিকোয়েন্সের সংখ্যা খুঁজে বের করা

  3. পাইথনে বাইনারি ট্রিতে যেসব পথের যোগফল k তাদের সংখ্যা গুনার প্রোগ্রাম

  4. পাইথনে যোগফল ১ হয় এমন ফ্র্যাকশন জোড়ার সংখ্যা বের করার প্রোগ্রাম