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

C++ में n-अंकीय संख्याएं जो दी गई संख्या से विभाज्य हैं


समस्या विवरण

हमें दो मान दिए गए हैं: अंकों की संख्या d और एक संख्या num। उन d-अंकीय संख्याओं की गिनती करनी है जो num से विभाज्य हैं।

उदाहरण

इनपुट: digit = 2, num = 12

आउटपुट: 8

2-अंकीय संख्याएं (10-99) जो 12 से विभाज्य: 12, 24, 36, 48, 60, 72, 84, 96

इनपुट: digit = 2, num = 9

आउटपुट: 10

18, 27, 36, 45, 54, 63, 72, 81, 90, 99

समाधान दृष्टिकोण (गणितीय - O(1))

  1. पहली d-अंकीय संख्या: first = 10^(d-1)
  2. अंतिम d-अंकीय संख्या: last = 10^d - 1
  3. पहली विभाज्य संख्या: firstDiv = first + (num - first%num)%num
  4. अंतिम विभाज्य संख्या: lastDiv = last - last%num
  5. गिनती = (lastDiv - firstDiv) / num + 1 (यदि firstDiv ≤ lastDiv)

कार्यकारी प्रोग्राम

#include <bits/stdc++.h>
using namespace std;

int countDivisible(int digit, int num) {
    long long first = pow(10, digit - 1);
    long long last = pow(10, digit) - 1;
    
    long long firstDiv = first + (num - first % num) % num;
    long long lastDiv = last - last % num;
    
    if (firstDiv > lastDiv) return 0;
    return (lastDiv - firstDiv) / num + 1;
}

int main() {
    int digit = 2, num = 9;
    cout << "विभाज्य संख्याओं की गिनती: " << countDivisible(digit, num);
    return 0;
}

आउटपुट

विभाज्य संख्याओं की गिनती: 10
  1. - C++ में n-अंकीय संख्याएं जो दी गई संख्या से विभाज्य हैं

    समस्या विवरण हमें दो मान दिए गए हैं: अंकों की संख्या d और एक संख्या num। उन d-अंकीय संख्याओं की गिनती करनी है जो num से विभाज्य हैं। उदाहरण इनपुट: digit = 2, num = 12 आउटपुट: 8 2-अंकीय संख्याएं (10-99) जो 12 से विभाज्य: 12, 24, 36, 48, 60, 72, 84, 96 इनपुट: digit = 2, num = 9 आउटपुट: 10 18, 27, 3

  1. - दिए गए अंक सेट से N तक की संख्याएं C++ में

    मान लीजिए हमारे पास अंकों का एक सॉर्टेड सेट D है, जो {1,2,3,4,5,6,7,8,9} का एक गैर-खाली उपसमुच्चय है (0 को छोड़कर)। अब, हम इन अंकों का उपयोग करके कुछ संख्याएं लिखेंगे, प्रत्येक अंक का जितनी बार चाहें उतनी बार उपयोग कर सकते हैं। हमें उन धनात्मक पूर्णांकों की संख्या ढूंढनी है जो लिखे जा सकते हैं और N

  1. - C++ में दी गई रेंज में फैक्टोरियल संख्याओं की गिनती करें

    हमें एक रेंज दी गई है जो एक पूर्णांक मान से शुरू होती है जिसे चर द्वारा धारित किया जाता है, मान लीजिए प्रारंभ से चर अंत तक और कार्य दी गई रेंज में उपलब्ध फैक्टोरियल संख्याओं की कुल संख्या को गिनना है। फैक्टोरियल संख्या क्या है एक संख्या का फैक्टोरियल एक संख्या में अंकों को गुणा करके घटते क्रम में