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

अक्षरों की संख्या जिनके ASCII मान C++ में N के अंकों के साथ बनाए जा सकते हैं

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

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

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

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

उदाहरण के लिए

इनपुट - N_digits =163465

आउटपुट - उन अक्षरों की संख्या जिनका ASCII मान N के अंकों से बनाया जा सकता है:2

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

इनपुट - N_digits =902349

आउटपुट - उन अक्षरों की संख्या जिनका ASCII मान N के अंकों से बनाया जा सकता है:2

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

नीचे दिए गए प्रोग्राम में इस्तेमाल किया गया तरीका इस प्रकार है

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

  • इनपुट के रूप में लंबे int N_digits लें।
  • Function check(int arr[], int val) इनपुट के रूप में फ़्रीक्वेंसी एरे arr[] और ASCII नंबर वैल लेता है और अगर वैल को arr[] में अंकों से बनाया जा सकता है, तो यह सही हो जाता है।
  • लूप का उपयोग करके फ़्रीक्वेंसी एरे की कुल मिलाकर एक कॉपी बनाएं[10]।
  • अब थोड़ी देर के लूप का उपयोग करते हुए, वैल के प्रत्येक अंक को निकालें और कुल मिलाकर खोजें []।
  • यदि कुल [अंक] 0 है, तो झूठी वापसी करें, अन्यथा इसका उपयोग करें और इसकी संख्या में 1 की कमी करें।
  • अगले एलएसबी के लिए मूल्य कम करें।
  • यदि पूरी तरह से निष्पादित होने पर कुल अंकों से वैल बनाया जा सकता है [] तो सही लौटें।
  • फ़ंक्शन ASCII_N(long long int N_digits) इनपुट नंबर लेता है और उन अक्षरों की गिनती देता है जिनके ASCII मान N के अंकों के साथ बनाए जा सकते हैं।
  • प्रारंभिक गणना को 0 के रूप में लें और फ़्रीक्वेंसी एरे टोटल[10] को 0 से प्रारंभ करें।
  • जबकि लूप का उपयोग करके N_digits में अंकों के लिए आवृत्ति सरणी को पॉप्युलेट करें। LSB को मानों के रूप में निकालें =N_digits% 10 और कुल [मान] को 1 से बढ़ाएँ।
  • N_digits को 10 से कम करें।
  • अब for लूप का उपयोग करके 97 से 122 और 65 से 90 तक अक्षर की ASCII संख्याओं को पार करें।
  • अगर कोई चेक (कुल, i) सही है तो इंक्रीमेंट काउंट।
  • दोनों लूप के अंत में परिणाम के रूप में वापसी की गणना करें।

उदाहरण

#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. सी ++ कोड k अंकों के साथ भाग्यशाली संख्याओं की संख्या गिनने के लिए

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

  1. एक संख्या X ज्ञात कीजिए जिसके अंकों के साथ योग C++ में N के बराबर है

    इस ट्यूटोरियल में, हम एक ऐसी संख्या खोजने जा रहे हैं, जिसके अंकों सहित कुछ संख्या दी गई संख्या N के बराबर है। विचार सरल है, हम दी गई संख्या के बाएँ और दाएँ 100 संख्याओं की जाँच करने जा रहे हैं। यह एन 1000000000 के रूप में बाध्य नहीं होगा और योग 100 से अधिक नहीं होगा। आइए समस्या को हल करने के लिए च

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

    एक बाइनरी ट्री दिया गया है जिसके नोड्स के भार संख्याओं के रूप में हैं। लक्ष्य उन नोड्स की संख्या का पता लगाना है जिनका वजन इस तरह है कि संख्या एक फाइबोनैचि संख्या है। फाइबोनैचि श्रृंखला में संख्याएं हैं:0, 1, 1, 2, 3, 5, 8, 13…। n वीं संख्या का योग है (n−1)वें और (n−2)वें। अगर वजन 13 है तो यह एक फाइ