इनपुट के रूप में एक पूर्णांक 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=[ num - (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 पूर्णांक है (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