কম্পিউটার

C++ এ ধারাবাহিক সংখ্যার যোগফল হিসাবে একটি সংখ্যা প্রকাশ করার উপায় গণনা করুন


ইনপুট হিসাবে একটি পূর্ণসংখ্যা n দেওয়া হয়েছে৷ লক্ষ্য হল দুটি বা ততোধিক ধারাবাহিক প্রাকৃতিক সংখ্যার যোগফল হিসাবে আমরা 'সংখ্যা' উপস্থাপন করতে পারি এমন উপায়গুলির সংখ্যা খুঁজে বের করা। উদাহরণস্বরূপ, যদি n 3 হয় তবে এটি যোগফল ( 1+2 ) হিসাবে উপস্থাপন করা যেতে পারে তাই মোট 1 উপায়।

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

ইনপুট

num=6

আউটপুট

Count of ways to express a number as sum of consecutive numbers are: 1

ব্যাখ্যা

The ways in which we can express ‘num’ as sum of consecutive natural
numbers: 1+2+3

ইনপুট

num=19

আউটপুট

Count of ways to express a number as sum of consecutive numbers are: 1

ব্যাখ্যা

The ways in which we can express ‘num’ as sum of consecutive natural
numbers: 9+10

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

এই পদ্ধতিতে আমরা সংখ্যাটিকে ( a + a+1 + a+2…..+ a+i) এর যোগফল হিসাবে উপস্থাপন করব।

যা হয় (a)(L+1) বার + 1+2+3+4…+i =a*(i+1) + i*(i+1)/2। (i প্রাকৃতিক সংখ্যার যোগফল) num=a*(i+1) + i*(i+1)/2.a=[ সংখ্যা − (i)*(i+1)/2] / (i+1)

আমরা এটি করব i=1 থেকে i*(i+1)/2 সংখ্যার চেয়ে কম।

  • ইনপুট হিসাবে একটি পূর্ণসংখ্যা নিন।

  • ফাংশন sum_consecutive(int num) একটি সংখ্যা নেয় এবং ধারাবাহিক প্রাকৃতিক সংখ্যার যোগফল হিসাবে 'num' প্রকাশ করার উপায়গুলির গণনা প্রদান করে।

  • 0 হিসাবে প্রাথমিক গণনা নিন।

  • ফ্লোট হিসাবে অস্থায়ী পরিবর্তনশীল রেস নিন।

  • i=1 থেকে i*(i+1)/2 থেকে লুপ ট্রাভার্সের জন্য ব্যবহার করা হচ্ছে

  • মান গণনা করুন [ num − (i)*(i+1)/2 ] / (i+1) এবং রেজাল্টে সংরক্ষণ করুন।

  • res যদি পূর্ণসংখ্যা হয় ( res − (int)res হয় 0 ) তাহলে ইনক্রিমেন্ট কাউন্ট।

  • শেষে আমরা এমন উপায় হিসাবে গণনা করেছি যেখানে সংখ্যাটি ধারাবাহিক প্রাকৃতিক সংখ্যার যোগফল হিসাবে উপস্থাপন করা যেতে পারে।

  • ফলাফল হিসাবে রিটার্ন গণনা।

উদাহরণ

#include <bits/stdc++.h>
using namespace std;
int sum_consecutive(int num){
   int count = 0;
   int temp = num * 2;
   float res;
   for (int i = 1; i * (i + 1) < temp; i++){
      int store = i + 1;
      res = (1.0 * num−(i * (i + 1)) / 2) / store;
      float check = res − (int)res;
      if(check == 0.0){
         count++;
      }
   }
   return count;
}
int main(){
   int num = 20;
   cout<<"Count of ways to express a number as sum of consecutive numbers are: "<<sum_consecutive(num) << endl;
   return 0;
}

আউটপুট

যদি আমরা উপরের কোডটি চালাই তবে এটি নিম্নলিখিত আউটপুট −

উৎপন্ন করবে
Count of ways to express a number as sum of consecutive numbers are: 1

  1. একটি সেটকে C++-এ k উপসেটে ভাগ করার উপায় গণনা করুন

  2. C++ এ ফিবোনাচি সংখ্যার বর্গক্ষেত্রের সমষ্টি

  3. একটি সংখ্যাকে C++ এ 2টি ত্রিভুজাকার সংখ্যার যোগফল হিসাবে উপস্থাপন করা যায় কিনা তা পরীক্ষা করুন

  4. একটি সংখ্যাকে C++ এ পরপর সংখ্যার যোগফল হিসাবে প্রকাশ করা যায় কিনা তা পরীক্ষা করুন