हमें एक संख्या N प्रदान की गई है। लक्ष्य उन संख्याओं को ढूंढना है जिनमें 0 अंक के रूप में हो और जो रेंज [1,N] में हों।
हम इसे 10 से N तक संख्याओं को पार करके करेंगे (1 से 9 तक जांचने की आवश्यकता नहीं) और प्रत्येक संख्या के लिए व्हाइल लूप का उपयोग करके प्रत्येक अंक की जांच करेंगे। यदि कोई अंक शून्य के रूप में मिलता है तो काउंट बढ़ाएं और अगली संख्या पर जाएं अन्यथा संख्या को 10 से विभाजित करके अंकों की जांच करें जब तक संख्या >0 है।
उदाहरण से समझते हैं
इनपुट
N=11
आउटपुट
1 से N तक 0 अंक वाली संख्याएं: 1
व्याख्या
i=10 से i<=11 तक शुरू करें। केवल 10 में 0 अंक के रूप में है। रेंज [1,9] जांचने की आवश्यकता नहीं।
इनपुट
N=100
आउटपुट
1 से N तक 0 अंक वाली संख्याएं: 10
व्याख्या
10, 20, 30, 40, 50, 60, 70, 80, 90, 100। दस संख्याओं में 0 अंक हैं।
नीचे दिए गए प्रोग्राम में उपयोग किया गया दृष्टिकोण
हम एक पूर्णांक N लेते हैं।
फ़ंक्शन haveZero(int n) n को पैरामीटर के रूप में लेता है और 0 अंक वाली संख्याओं की संख्या लौटाता है।
प्रारंभिक चर count को 0 से आरंभ करें ऐसी संख्याओं के लिए।
फॉर लूप का उपयोग करके संख्याओं की रेंज को पार करें। i=10 से i=n
अब प्रत्येक संख्या num=i के लिए, व्हाइल लूप का उपयोग करके जांचें कि num%10==0 है या नहीं, यदि गलत है तो num को 10 से विभाजित करें और अगले अंक पर जाएं जब तक num>0
यदि सत्य है तो आगे की जांच रोकें, काउंट बढ़ाएं और व्हाइल लूप तोड़ें।
सभी लूप के अंत में काउंट में 1 से N के बीच 0 अंक वाली कुल संख्याएं होंगी।
काउंट को परिणाम के रूप में लौटाएं।
उदाहरण
#include <bits/stdc++.h> using namespace std; int haveZero(int n){ int count = 0; for (int i = 1; i <= n; i++) { int num = i; while(num>1){ int digit=num%10; if (digit == 0){ count++; break; } else { num=num/10; } } } return count; } int main(){ int N = 200; cout <<"1 से N तक 0 अंक वाली संख्याएं: "<<haveZero(N); return 0; } आउटपुट
यदि हम उपरोक्त कोड चलाते हैं तो यह निम्नलिखित आउटपुट उत्पन्न करेगा -
1 से N तक 0 अंक वाली संख्याएं: 29