हमें रेंज को परिभाषित करने के लिए दो संख्याएं START और END प्रदान की गई हैं। लक्ष्य रेंज [START,END] में उन सभी संख्याओं को ढूंढना है जिनके अंकों का योग दी गई संख्या Y के बराबर है।
हम इसे START से END तक संख्याओं को पार करके और प्रत्येक संख्या के लिए उसके अंकों का योग व्हाइल लूप का उपयोग करके गिनेंगे। यदि यह योग Y के बराबर है, तो काउंट बढ़ाएं।
उदाहरण से समझते हैं
इनपुट
START=10 END=20 Y=4
आउटपुट
अंकों का योग Y के बराबर वाली संख्याएं: 1
व्याख्या
संख्या 13 का अंकों का योग 4 के बराबर है।
इनपुट
START=10 END=50 Y=5
आउटपुट
अंकों का योग Y के बराबर वाली संख्याएं: 5
व्याख्या
संख्याएं 14, 23, 32, 41 और 50 का अंकों का योग 5 है।
नीचे दिए गए प्रोग्राम में उपयोग किया गया दृष्टिकोण
हम पूर्णांक START, END, Y लेते हैं।
फ़ंक्शन digitSum(int start, int end, int y) अंकों का योग=y वाली संख्याओं की संख्या लौटाता है।
प्रारंभिक चर count को 0 से आरंभ करें ऐसी संख्याओं के लिए।
चर digsum को 0 लें।
फॉर लूप का उपयोग करके संख्याओं की रेंज को पार करें। i=start से i=end
अब प्रत्येक संख्या num=i के लिए, व्हाइल लूप का उपयोग करके जांचें कि संख्या >0 है या नहीं।
digsum+=num%10 की गणना करें। अगला अंक जोड़ने के लिए num=num/10 से कम करें।
व्हाइल के अंत में, जांचें कि (digsum == y)। यदि सत्य है तो काउंट बढ़ाएं।
सभी लूप के अंत में काउंट में शर्त को पूरा करने वाली कुल संख्या होगी।
काउंट को परिणाम के रूप में लौटाएं।
उदाहरण
#include <bits/stdc++.h> using namespace std; int digitSum(int start, int end, int y){ int count = 0; int digsum = 0; for (int i = start; i <= end; i++){ int num=i; digsum=0; while(num>0){ digsum+=num%10; //अंकों का योग num=num/10; } if(digsum==y) //मूल संख्या i है{ count++; //cout<<i<<" "; } } return count; } int main(){ int START = 100; int END = 1000; int Y = 5; cout <<"अंकों का योग Y के बराबर वाली संख्याएं: "<<digitSum(START,END,Y); return 0; } आउटपुट
यदि हम उपरोक्त कोड चलाते हैं तो यह निम्नलिखित आउटपुट उत्पन्न करेगा -
अंकों का योग Y के बराबर वाली संख्याएं: 15