Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> C++

C++ में एक रेंज में यूनरी संख्याओं की गिनती


समस्या विवरण

दो संख्याएं start और end दी गई हैं जो एक रेंज दर्शाती हैं। लक्ष्य [start, end] के बीच मौजूद यूनरी संख्याओं की संख्या ज्ञात करना है।

हम जांच सकते हैं कि संख्या यूनरी है या नहीं निम्न चरणों का पालन करके: यदि हम संख्या 13 लेते हैं तो 1^2 + 3^2 = 10, फिर 1^2 + 0^2 = 1। तो इस तरह अंतिम योग 1 है इसलिए 13 यूनरी है।

उदाहरण

इनपुट

start=1 end=20

आउटपुट

रेंज में यूनरी संख्याओं की गिनती: 5

व्याख्या

संख्याएं हैं: 1, 7, 10, 12, और 13

इनपुट

start=50 end=100

आउटपुट

रेंज में यूनरी संख्याओं की गिनती: 7

व्याख्या

संख्याएं हैं: 59, 63, 67, 74, 75, 78, और 89

दृष्टिकोण

1 और 9 के बीच संख्याएं 1 और 7 यूनरी हैं। अन्य संख्याओं के लिए हम अंकों के वर्गों के योग का उपयोग करेंगे जब तक यह 1 न दे दे। इस प्रक्रिया को रेंज में सभी संख्याओं के लिए जारी रखें। इस तरीके से मिली सभी यूनरी संख्याओं के लिए गिनती बढ़ाएं।

एल्गोरिदम चरण

  • दो पूर्णांक start, end इनपुट के रूप में लें।
  • फंक्शन check_unary(int number) पास किए गए मान के यूनरी होने पर true लौटाता है अन्यथा false।
  • फंक्शन Unary_range(int start, int end) रेंज चर लेता है और रेंज में स्थित यूनरी संख्याओं की संख्या लौटाता है।
  • प्रारंभिक गिनती 0 लें। for लूप का उपयोग करके i=start से end तक पार करें। यदि check_unary(i) true लौटाता है, तो गिनती बढ़ाएं।
  • check_unary(int number) के अंदर, अस्थायी चर count लें।
  • यदि संख्या N 1, 7 है, तो true लौटाएं। 10 से कम अन्य सभी संख्याओं के लिए false लौटाएं। (number/10 == 0)।
  • फिर while लूप में अंकों के वर्गों का योग गणना करें।
  • ऐसे लगातार योगों के लिए फिर से check_unary(int number) कॉल करें जब तक योग 1 न हो जाए।
  • परिणाम के रूप में गिनती लौटाएं।

C++ कोड उदाहरण

#include <iostream>
using namespace std;

bool check_unary(int number) {
    int total = 0;
    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;
    }
    return 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 << "रेंज में यूनरी संख्याओं की गिनती: " << Unary_range(start, end);
    return 0;
}

आउटपुट

रेंज में यूनरी संख्याओं की गिनती: 31
  1. C++ में तल में समानांतर चतुर्भुजों की गणना C++ में तल में समानांतर चतुर्भुजों की गणना

    हमें एक तल दिया गया है जिसमें समानांतर चतुर्भुज बनाने वाले बिंदु हैं और कार्य दिए गए बिंदुओं का उपयोग करके बनने वाले समानांतर चतुर्भुजों की संख्या की गणना करना है। समानांतर चतुर्भुज में एक चतुर्भुज की विपरीत भुजाएँ समानांतर होती हैं और इसलिए विपरीत कोण समान होते हैं। इनपुट - int a[] = {0, 2, 5, 5,

  1. - C++ में 1 से n तक की संख्याओं में 4 अंक वाली संख्याएं गिनें

    इस ट्यूटोरियल में, हम 1 से n तक की उन संख्याओं को खोजने के लिए एक प्रोग्राम पर चर्चा करेंगे जिनमें 4 एक अंक के रूप में है।इसके लिए हमें एक संख्या n प्रदान की जाएगी। हमारा कार्य उन सभी संख्याओं को गिनना है जिनमें 4 उनके अंकों में से एक के रूप में है और इसे प्रिंट करना है।उदाहरण#include<iostream>

  1. - 1 से N तक ऑलमोस्ट अभाज्य संख्याओं की गिनती खोजें C++ में

    मान लीजिए हमारे पास एक संख्या N है। हमें 1 से N की रेंज में ऑलमोस्ट अभाज्य संख्याएं खोजनी हैं। एक संख्या को ऑलमोस्ट अभाज्य कहा जाता है जब उसके ठीक दो अलग-अलग अभाज्य गुणनखंड हों। संख्याओं में कितने भी गैर-अभाज्य गुणनखंड हो सकते हैं, लेकिन दो अभाज्य गुणनखंड होने चाहिए। तो यदि N 21 है, तो आउटपुट 8 होगा