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

C++ में n अंकों की स्टेपिंग संख्याओं की संख्या

स्टेपिंग नंबर एक संख्या है जहां लगातार अंकों के बीच का अंतर 1 है। आपको अंकों की संख्या का प्रतिनिधित्व करने वाली संख्या n दी जाती है। आपको n अंकों के साथ स्टेपिंग नंबरों की कुल संख्या गिननी होगी।

आइए एक उदाहरण देखें।

इनपुट

2

आउटपुट

17

2 अंकों की सबसे छोटी संख्या 10 है और 2 अंकों की सबसे बड़ी संख्या 99 है। उनके बीच में 17 स्टेपिंग नंबर हैं।

एल्गोरिदम

  • संख्या n प्रारंभ करें।
  • गिनती को 0 से प्रारंभ करें।
  • n अंकों की सबसे छोटी संख्या ज्ञात कीजिए, यानी पाउ(10, n - 1)।
  • n अंकों की उच्चतम संख्या ज्ञात कीजिए, यानी पाउ(10, n) - 1.
  • एक लूप लिखें जो निम्नतम n अंक संख्या से उच्चतम n अंक संख्या तक पुनरावृत्त हो।
    • जांचें कि वर्तमान नंबर स्टेपिंग नंबर है या नहीं।
    • अंकों के क्रमागत युग्मों के बीच अंतर की जाँच करें।
    • यदि किसी अंतर का परिणाम 1 नहीं है, तो असत्य और सत्य लौटाएं।
    • यदि वर्तमान संख्या एक चरण संख्या है तो गिनती बढ़ाएँ।
  • गिनती लौटाएं।

कार्यान्वयन

C++ में उपरोक्त एल्गोरिथम का कार्यान्वयन निम्नलिखित है

#include <bits/stdc++.h>
using namespace std;
bool isSteppingNumber(int n) {
   int previousDigit = -1;
   while (n) {
      int currentDigit = n % 10;
      if (previousDigit != -1 && abs(previousDigit - currentDigit) != 1) {
         return false;
      }
      previousDigit = currentDigit;
      n /= 10;
   }
   return true;
}
int getSteppingNumbersCount(int n) {
   int lowestNumber = pow(10, n - 1), highestNumber = pow(10, n) - 1;
   int count = 0;
   for (int i = lowestNumber; i <= highestNumber; i++) {
      if (isSteppingNumber(i)) {
         count += 1;
      }
   }
   return count;
}
int main() {
   int n = 3;
   cout << getSteppingNumbersCount(n) << endl;
   return 0;
}

आउटपुट

यदि आप उपरोक्त कोड चलाते हैं, तो आपको निम्न परिणाम प्राप्त होंगे।

32

  1. C++ में मितव्ययी संख्या

    इस समस्या में, हमें एक धनात्मक पूर्णांक N दिया जाता है। हमारा कार्य यह जाँचने के लिए एक प्रोग्राम बनाना है कि दी गई संख्या मितव्ययी संख्या है या नहीं। मितव्ययी संख्या - एक संख्या जिसके अंकों की संख्या दी गई संख्या के अभाज्य गुणनखंड में अंकों की संख्या से अधिक है। उदाहरण − 625, संख्या 625 का अभाज्

  1. सी++ पेंटाटोप नंबर

    पास्कल के त्रिभुज में एक पंचकोण संख्या को पाँचवीं संख्या के रूप में वर्णित किया गया है। अब, जैसा कि आप जानते हैं, यह पांचवीं संख्या है, तो इसका मतलब है कि हमारे पास पास्कल के त्रिकोण में कम से कम पांच संख्याएं होनी चाहिए, इसलिए इस श्रृंखला की पहली संख्या 1 4 6 4 1 से शुरू होती है। पास्कल त्रिभुज की

  1. सी++ में डुडेनी नंबर्स

    संख्या सिद्धांत में परिभाषित एक गणितीय संख्या (विकिपीडिया)। नंबर हेनरी डुडेनी . द्वारा खोजा गया था . इसका गणितीय सूत्र है - यहाँ, हमें एक पूर्णांक n दिया गया है। हमारा काम जांच करना है कि दिया गया नंबर n एक डुडनी नंबर है या नहीं। समस्या को समझने के लिए एक उदाहरण लेते हैं, इनपुट: एन =17592 आ