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

C++ में N के अंकों से बनने वाले ASCII मान वाले वर्णमाला की गिनती


एक लॉन्ग वेरिएबल दिया गया है जिसमें इनपुट के रूप में एक धनात्मक संख्या है। लक्ष्य उन वर्णमाला की गिनती ढूंढना है जिनके ASCII मान के अंक संख्या के अंकों में मौजूद हैं।

संख्या से किन्हीं दो अंकों को चुनें और उन्हें इस तरह व्यवस्थित करें कि वे अंग्रेजी वर्णमाला का ASCII मान बनाएं। A-Z के ASCII मान 65 से 90 से शुरू होते हैं और a-z के ASCII मान 97 से 122 से शुरू होते हैं।

चुनी जाने वाली कुल संख्याएं 26+26=52 होंगी।

उदाहरणों से समझते हैं।

उदाहरण के लिए

इनपुट -  N_digits = 163465

आउटपुट - N के अंकों से बनने वाले ASCII मान वाले वर्णमाला की संख्या: 2

व्याख्या - 163465 में मौजूद ASCII मान 65 और 66 हैं। तो केवल दो वर्णमाला संभव हैं।

इनपुट - N_digits = 902349

आउटपुट - N के अंकों से बनने वाले ASCII मान वाले वर्णमाला की संख्या: 2

व्याख्या - 902349 में मौजूद ASCII मान 90 और 99 हैं। तो केवल दो वर्णमाला संभव हैं।

नीचे दिए गए प्रोग्राम में उपयोग किया गया दृष्टिकोण

इस दृष्टिकोण में हम पहले इनपुट संख्या में अंकों की फ्रीक्वेंसी संग्रहीत करने के लिए एक फ्रीक्वेंसी सरणी total[10] बनाएंगे। अब रेंज 65 से 90 और 97 से 122 में प्रत्येक संख्या i लें। i के अंक निकालें और फ्रीक्वेंसी सरणी में खोजें। यदि i के सभी अंक फ्रीक्वेंसी सरणी में मौजूद हैं ( total[ वर्तमान अंक] सभी अंकों के लिए शून्येतर होगा ) तो काउंट बढ़ाएं।

  • long int N_digits को इनपुट के रूप में लें।
  • फ़ंक्शन check(int arr[], int val) फ्रीक्वेंसी सरणी arr[] और ASCII संख्या val को इनपुट के रूप में लेता है और true लौटाता है यदि val को arr[] में अंकों से बनाया जा सकता है।
  • for लूप का उपयोग करके फ्रीक्वेंसी सरणी की एक प्रति total[10] के रूप में बनाएं।
  • अब while लूप का उपयोग करके, val के प्रत्येक अंक को निकालें और total[] में खोजें।
  • यदि total[digit] 0 है तो false लौटाएं, अन्यथा इसका उपयोग करें और इसकी गिनती 1 से घटाएं।
  • अगले LSB के लिए val को घटाएं।
  • यदि while पूरी तरह से 실행 होता है तो val को total[] में अंकों से बनाया जा सकता है तो true लौटाएं।
  • फ़ंक्शन ASCII_N(long long int N_digits) इनपुट संख्या लेता है और N के अंकों से बनने वाले ASCII मान वाले वर्णमाला की गिनती लौटाता है।
  • प्रारंभिक गिनती 0 लें और फ्रीक्वेंसी सरणी total[10] को 0 से इनिशियलाइज़ करें।
  • while लूप का उपयोग करके N_digits में अंकों के लिए फ्रीक्वेंसी सरणी भरें। LSB को values = N_digits % 10 के रूप में निकालें और total[values] को 1 से बढ़ाएं।
  • N_digits को 10 से घटाएं।
  • अब for लूप का उपयोग करके वर्णमाला के ASCII नंबर 97 से 122 और 65 से 90 तक पार करें।
  • यदि कोई check(total, i) true लौटाता है तो काउंट बढ़ाएं।
  • दोनों for लूप के अंत में परिणाम के रूप में count लौटाएं।

उदाहरण

#include<bits/stdc++.h> using namespace std; bool check(int arr[], int val) {    int total[10];    for (int i = 0; i < 10; i++) {       total[i] = arr[i];    }    while (val > 0) {       int values = val % 10;       if (total[values] == 0) {          return false;       } else {          total[values]--;       }       val = floor(val / 10);    }    return true; } int ASCII_N(long long int N_digits) {    int count = 0;    int total[10] = {       0    };    while (N_digits > 0) {       int values = N_digits % 10;       total[values]++;       N_digits = floor(N_digits / 10);    }    for (int i = 97; i <= 122; i++) {       if (check(total, i)) {          count++;       }    }    for (int i = 65; i < 91; i++) {       if (check(total, i)) {          count++;       }    }    return count; } int main() {    long long int N_digits = 251326;    cout << "Count of alphabets whose ASCII values can be formed with the digits of N are: " << ASCII_N(N_digits); }

यदि हम उपरोक्त कोड चलाते हैं तो यह निम्नलिखित आउटपुट उत्पन्न करेगा -

आउटपुट

Count of alphabets whose ASCII values can be formed with the digits of N are: 2

  1. - C++ कोड: k अंकों वाली लकी संख्याओं की गणना करें

    मान लीजिए हमारे पास n तत्वों की एक सरणी A है, और एक अन्य संख्या x भी है। हम जानते हैं कि लकी संख्याएं वे धनात्मक संख्याएं हैं जिनका दशमलव प्रतिनिधित्व केवल लकी अंक 4 और 7 से होता है। दिए गए n धनात्मक पूर्णांकों से। हमें गिनना है कि उनमें से कितनी में k से अधिक लकी अंक नहीं हैं?उदाहरण के लिए, यदि इनप

  1. - C++ में ऐसा नंबर X खोजें जिसके अंकों के साथ योग N के बराबर हो

    इस ट्यूटोरियल में, हम एक ऐसा नंबर ढूंढने जा रहे हैं जिसके अंकों के साथ योग दिए गए नंबर N के बराबर हो। विचार सरल है, हम दिए गए नंबर के बाएं और दाएं 100 नंबरों की जांच करने जा रहे हैं। यह उस सीमा से बाहर नहीं होगा क्योंकि N ≤ 1000000000 और योग 100 से अधिक नहीं होगा। आइए प्रॉब्लम को हल करने के चरण देख

  1. C++ में उन नोड्स को गिनना जिनका योग X के साथ फाइबोनैचि संख्या है C++ में उन नोड्स को गिनना जिनका योग X के साथ फाइबोनैचि संख्या है

    नोड्स के वजन वाली एक बाइनरी ट्री दी गई है। लक्ष्य उन नोड्स की संख्या ढूंढना है जिनके वजन ऐसे हैं कि संख्या एक फाइबोनैचि संख्या है। फाइबोनैचि श्रृंखला में संख्याएं हैं: 0, 1, 1, 2, 3, 5, 8, 13... nth संख्या (n-1)th और (n-2)th का योग है। यदि वजन 13 है तो यह एक फाइबोनैचि संख्या है इसलिए नोड गिना जाएगा।