दिए गए दो नंबर एक श्रेणी का प्रतिनिधित्व करते हुए प्रारंभ और अंत करते हैं। लक्ष्य [शुरू, अंत] के बीच मौजूद यूनरी संख्याओं की संख्या का पता लगाना है।
हम निम्न चरणों का पालन करके जांच सकते हैं कि संख्या एकात्मक है या नहीं:यदि हम संख्या 13 लेते हैं तो 12 + 32 =10, फिर 12 + 02 =1 तो इस तरह से अंतिम योग 1 है इसलिए 13 एकात्मक है।
उदाहरण के लिए
इनपुट
start=1 end=20
आउटपुट
Count of Unary Numbers in a Range are: 5
स्पष्टीकरण
The numbers are : 1, 7, 10, 12, and 13
इनपुट
start=50 end=100
आउटपुट
Count of Unary Numbers in a Range are: 7
स्पष्टीकरण
The numbers are − 59, 63, 67, 74, 75, 78, and 89
नीचे दिए गए कार्यक्रम में उपयोग किया गया दृष्टिकोण इस प्रकार है -
1 और 9 के बीच की संख्या 1 और 7 एकात्मक हैं। अन्य संख्याओं के लिए हम अंकों के वर्गों के योग का उपयोग तब तक करेंगे जब तक कि यह 1 न दे दे। श्रेणी में सभी संख्याओं के लिए इस प्रक्रिया को जारी रखें। इस तरह से मिले सभी यूनरी नंबरों के लिए इंक्रीमेंट काउंट।
-
दो पूर्णांक प्रारंभ करें, इनपुट के रूप में समाप्त करें।
-
फ़ंक्शन check_unary(int number) सही लौटाता है अगर पास किया गया मान यूनरी है और गलत रिटर्न देता है।
-
फंक्शन Unary_range(int start, int end) रेंज वेरिएबल लेता है और रेंज में पड़े यूनरी नंबरों की गिनती लौटाता है।
-
प्रारंभिक गणना को 0 के रूप में लें। लूप के लिए उपयोग करते हुए, i=से अंत तक ट्रैवर्स करें। यदि check_unary(i) सत्य लौटाता है, तो वृद्धि की गणना करें।
-
check_unary(int number) के अंदर, अस्थायी चर गणना लें।
-
यदि संख्या N 1, 7 है, तो सही लौटें। 10 से कम अन्य सभी संख्याओं के लिए झूठी वापसी करें। (संख्या/10 ==0)।
-
फिर जबकि लूप में अंकों के वर्गों के योग की गणना करें।
-
जब तक योग 1 न हो जाए, तब तक ऐसी निरंतर राशि के लिए check_unary(int number) पर दोबारा कॉल करें।
-
परिणाम के रूप में वापसी की गिनती।
उदाहरण
#include <iostream> using namespace std; bool check_unary(int number){ int total; if (number == 1 ){ return true; } else if(number == 7){ return true; } else if (number / 10 == 0){ return false; } while (number!= 0){ int temp = number % 10; total = total + temp * temp; number = number / 10; } check_unary(total); } int Unary_range(int start, int end){ int count = 0; for (int i = start; i <= end; i++){ if (check_unary(i) == 1){ count++; } } return count; } int main(){ int start = 200, end = 400; cout<<"Count of Unary Numbers in a Range are: "<<Unary_range(start, end); return 0; }
आउटपुट
यदि हम उपरोक्त कोड चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा -
Count of Unary Numbers in a Range are: 31