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

अद्वितीय संख्याएँ गिनें जिन्हें N से एक जोड़कर और C++ में अनुगामी शून्य को हटाकर उत्पन्न किया जा सकता है


हमें इनपुट के रूप में एक नंबर N दिया गया है। एन पर दो ऑपरेशन करें और प्रक्रिया में उत्पन्न अद्वितीय संख्याओं की गिनती की पहचान करें। कदम होंगे -

  • नंबर में 1 जोड़ें

  • जनरेट की गई संख्या से पिछला शून्य हटा दें, यदि कोई हो

यदि N 8 है तो उत्पन्न संख्याएँ होंगी

चरण 1− 8 → 9 →

. लागू करना

चरण 2− 1 → ( 10 से 0 हटा दिया गया)

. लागू करना

चरण 1:2 → 3 → 4 → 5 → 6 → 7 → 8 (समान क्रम) को लागू करना

अद्वितीय संख्याओं की संख्या 9 होगी।

उदाहरण के लिए

इनपुट

N=21

आउटपुट

Count of unique numbers that can be generated from N by adding one and
removing trailing zeros are: 18

स्पष्टीकरण

Numbers will be: 21, 22, 23, 24, 25, 26, 27, 28, 29, 3, 4, 5, 6, 7, 8, 9, 1, 2, 3 −−−now same sequence Unique numbers are: 18

इनपुट

N=38

आउटपुट

Count of unique numbers that can be generated from N by adding one and removing trailing zeros are: 11

स्पष्टीकरण

Numbers will be:
38, 39, 4, 5, 6, 7, 8, 9, 1, 2, 3, 4 −−−now same sequence
Unique numbers are: 11

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

इस दृष्टिकोण में हम एक अनियंत्रित सेट बनाएंगे जिसमें चरण 1 और 2 को लागू करने के बाद उत्पन्न सभी अद्वितीय संख्याएं होंगी। यदि संख्याएं दोहराई जाती हैं, तो हम पुनरावृत्ति को रोक देंगे। सेट का आकार हमें प्रक्रिया में उत्पन्न अद्वितीय संख्याओं की गिनती देगा।

  • संख्या N को पूर्णांक के रूप में लें।

  • जेनरेट किए गए नंबर डालने के लिए unordered_set U_S लें।

  • फ़ंक्शन unique_N(unordered_set&U_S, int N) सेट और N लेता है और सेट U_S में नंबर जोड़ता है जब तक कि इसमें सभी नंबर अद्वितीय न हों।

  • यदि U_S.count(N) 1 लौटाता है, तो इसका अर्थ है कि N पहले से ही सेट में मौजूद है। तो संख्या दोहराई जाएगी, फ़ंक्शन से वापस आ जाएगी।

  • अन्यथा सेट में एन डालें और ऑपरेशन 1 लागू करें (1 से वृद्धि)।

  • जाँच करें कि क्या संख्या N में अनुगामी शून्य है (10 का गुणज)।

  • अगर N % 10 0 है, तो पीछे वाले शून्य को 10 से भाग देकर हटा दें।

  • अद्यतन एन के साथ अद्वितीय_एन () फ़ंक्शन को कॉल करें।

  • फ़ंक्शन से लौटने के बाद, सेट U_S के आकार के रूप में गिनें।

  • परिणाम को गिनती के रूप में प्रिंट करें।

उदाहरण

#include <bits/stdc++.h>
using namespace std;
void unique_N(unordered_set<int>& U_S, int N){
   if (U_S.count(N)){
      return;
   }
   U_S.insert(N);
   N = N + 1;
   while (N % 10 == 0){
      N = N / 10;
   }
   unique_N(U_S, N);
}
int main(){
   int N = 7;
   unordered_set<int> U_S;
   unique_N(U_S, N);
   int count = U_S.size();
   cout<<"Count of unique numbers that can be generated from N by adding one and removing
      trailing zeros are: "<<count;
   return 0;
}

आउटपुट

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

Count of unique numbers that can be generated from N by adding one and removing trailing zeros are: 9

  1. श्रेणी में संख्याओं की गणना करें जैसे कि इसमें अंक और क्यू के साथ इसका उत्पाद सी ++ में असमान हैं

    दिए गए दो नंबर रेंज वेरिएबल के रूप में शुरू और समाप्त होते हैं और इनपुट के रूप में एक पूर्णांक q। लक्ष्य एक सीमा के भीतर संख्याओं को इस तरह खोजना है कि संख्या और q के साथ उसके उत्पाद में कोई सामान्य अंक न हो। यदि संख्या 5 है और q 3 है तो गुणनफल 15 होगा। 5 और 15 दोनों का एक सामान्य अंक 5 है। यदि सं

  1. C++ . में किसी गेम में उन संख्याओं को गिनें जिन्हें शून्य या उससे कम तक घटाया जा सकता है

    धनात्मक संख्याओं की एक सरणी और दो पूर्णांक A और B को देखते हुए। दो खिलाड़ी एक खेल खेल रहे हैं जिसमें वे सरणी में संख्याओं को कम करेंगे। खिलाड़ी 1 एरे के किसी भी तत्व को ए से कम कर सकता है और खिलाड़ी 2 एरे के किसी भी तत्व को बी से बढ़ा सकता है। लक्ष्य उन संख्याओं की गणना करना है जिन्हें खिलाड़ी 1 द्व

  1. C++ में एक चाल में बिशप द्वारा देखे जा सकने वाले वर्गों की कुल संख्या की गणना करें

    एक शतरंज की बिसात पर जिसे 8 X 8 ग्रिड के रूप में दर्शाया गया है, हमें पंक्ति और स्तंभ स्थिति के रूप में बिशप का स्थान दिया गया है। लक्ष्य उन वर्गों की कुल संख्या का पता लगाना है जो बिशप एक चाल में देख सकते हैं। हम जानते हैं कि बिशप सभी दिशाओं में घूम सकता है (तिरछे बाएँ ऊपर/नीचे और दाएँ ऊपर/नीचे)।