हमें दो संख्याएँ N प्रदान की जाती हैं जो एक श्रेणी [1,N] और D को परिभाषित करती हैं जो एक अंतर है। लक्ष्य [1,N] की सीमा में सभी संख्याओं को इस तरह खोजना है कि [संख्या - (इसके अंकों का योग) ]> D. हम इसे 1 से N तक की संख्याओं को पार करके करेंगे और प्रत्येक संख्या के लिए हम थोड़ी देर के लूप का उपयोग करके इसके अंकों के योग की गणना करेंगे। जांचें कि क्या संख्या और परिकलित अंकों के योग का अंतर D से अधिक है।
आइए उदाहरणों से समझते हैं।
इनपुट
N=15 D=5
आउटपुट
Numbers such that difference b/w no. and its digit sum greater than value D: 6
स्पष्टीकरण
Numbers 10, 11, 12, 13, 14, 15 satisfy the condition. ( 10-1, 11-2, 12-3, 13-4, 14-5, 15-6 ) all differences are 9 which is greater than 5.
इनपुट
N=20 D=10
आउटपुट
Only 20 satisfies the condition. 20-2=18 > 10.
स्पष्टीकरण
This is list of numbers divisible by all non-zero digits : 100 101 102 104 105 110 111 112 115 120 122 124 126 128 132 135 140 144 150 155 162 168 175 184 200
नीचे दिए गए प्रोग्राम में इस्तेमाल किया गया तरीका इस प्रकार है
-
हम पूर्णांक N और D लेते हैं।
-
फंक्शन digitSum(int n, int d) वेरिएबल N, D लेता है और संख्याओं की गिनती (num-digitsum)>d.
के साथ देता है। -
ऐसी संख्याओं के लिए प्रारंभिक चर गणना को 0 के रूप में लें।
-
परिवर्तनीय डिगसम को 0 के रूप में लें
-
लूप के लिए उपयोग कर संख्याओं की ट्रैवर्स श्रेणी। i=1 से i=n
-
अब प्रत्येक संख्या के लिए num=i, जबकि लूप का उपयोग करके जांचें कि क्या संख्या>0 है।
-
डिगसम+=संख्या%10 की गणना करें। अगला अंक जोड़ने के लिए num=num/10 कम करें।
-
समय के अंत में, जांचें कि क्या (i - डिगसम> d)। अगर सही वेतन वृद्धि गिनती है।
-
सभी लूपों के अंत में काउंट की कुल संख्या होगी जो शर्त को पूरा करती है।
-
परिणाम के रूप में गिनती लौटाएं।
उदाहरण
#include <bits/stdc++.h> using namespace std; int digitSum(int n, int d){ int count = 0; int digsum = 0; for (int i = 1; i <= n; i++){ int num=i; digsum=0; while(num>0){ digsum+=num%10; //sum of digits num=num/10; } if(i-digsum>d) //original number is i { count++; //cout<<i<<" "; } } return count; } int main(){ int N = 20; int D = 8; cout <<"Numbers such that difference between number and its digit sum greater than specific value: "<<digitSum(N,D); return 0; }
आउटपुट
यदि हम उपरोक्त कोड चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा -
Numbers such that difference between number and its digit sum greater than specific value: 11