কম্পিউটার

C++ এ পরপর সংখ্যার যোগফল


ধরুন আমাদের একটি ধনাত্মক পূর্ণসংখ্যা N আছে, আমাদের খুঁজে বের করতে হবে যে আমরা একে ধারাবাহিক ধনাত্মক পূর্ণসংখ্যার যোগফল হিসাবে কতগুলি ভিন্ন উপায়ে লিখতে পারি?

সুতরাং, যদি ইনপুট 10 এর মত হয়, তাহলে আউটপুট 3 হবে, কারণ আমরা 10 কে 5 + 5 এবং 7 + 3 হিসাবে উপস্থাপন করতে পারি, তাই দুটি ভিন্ন উপায় রয়েছে।

এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -

  • ret :=1

  • আরম্ভ করার জন্য i :=2, (i 1 দ্বারা বাড়ান), −

    করুন
    • যোগফল :=(i * (i + 1)) / 2

    • যোগফল> N হলে −

      • লুপ থেকে বেরিয়ে আসুন

    • rem :=N - যোগফল

    • ret :=ret + (1 যখন rem mod i 0 হয়, অন্যথায় 0)

  • রিটার্ন রিটার্ন

আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -

উদাহরণ

#include <bits/stdc++.h>
using namespace std;
class Solution {
   public:
   int consecutiveNumbersSum(int N) {
      int ret = 1;
      for(int i = 2; ; i++){
         int sum = (i * (i + 1)) / 2;
         if(sum > N) break;
         int rem = N - sum; ret += (rem % i == 0);
      }
      return ret;
   }
}; main(){
   Solution ob;cout << (ob.consecutiveNumbersSum(10));
}

ইনপুট

10

আউটপুট

2

  1. C++ এ Tetranacci সংখ্যা

  2. C++ এ অ্যালিকোট যোগফল?

  3. প্রাকৃতিক সংখ্যার যোগফল গণনা করার জন্য C++ প্রোগ্রাম

  4. দুই নম্বর যোগ করার জন্য C++ প্রোগ্রাম