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

C++ में किसी संख्या को विभाजित करने पर दशमलव के बाद अंकों की संख्या गिनें

हमें दो पूर्णांक संख्याएँ दी गई हैं मान लीजिए num1 और num2 और कार्य संख्या 1 को num2 से विभाजित करना और इन दी गई संख्याओं को विभाजित करने पर दशमलव के बाद अंकों की गणना करना है।

उदाहरण के लिए

Input − num1 = 2, num2 = 5
Output − count is 1

स्पष्टीकरण - जब हम 2 को 5 से भाग देते हैं अर्थात ? =0.4, इसलिए दशमलव के बाद के अंक 1 हैं इसलिए गिनती 1 है।

Input − num1 = 2, num2 = 0
Output − Floating point exception (core dumped)

स्पष्टीकरण - जब हम किसी संख्या को 0 से विभाजित करते हैं तो यह एक त्रुटि लौटाएगा और प्रोग्राम को असामान्य रूप से समाप्त कर देगा।

Input − num1 = 2, num2 = 3
Output − Infinite

स्पष्टीकरण - जब हम 2 को 3 से विभाजित करते हैं यानी 2/3 =0.666..., दशमलव के बाद के अंक अनंत होते हैं इसलिए हम अनंत प्रिंट करेंगे।

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

  • इनपुट दो वेरिएबल मान लें, num1 और num2

  • दशमलव संख्याओं की संख्या को संग्रहीत करने के लिए एक चर गणना बनाएं और इसे 0 से प्रारंभ करें

  • unordered_map प्रकार का वैरिएबल um बनाएं

  • लूप प्रारंभ करें जबकि num1%num2 !=0

  • लूप के अंदर, num1 को num1%num2 के साथ सेट करें

  • गिनती के मान को 1 से बढ़ाएँ

  • जांचें कि क्या um.find(num1) !=um.end() फिर वापसी -1

  • लूप के बाहर, मान को गिनती में लौटाएं।

  • परिणाम प्रिंट करें।

उदाहरण

#include <iostream>
#include <unordered_map>
using namespace std;
int countdigits(int x, int y){
   int result = 0; // result variable
   unordered_map<int, int> mymap;
   // calculating remainder
   while (x % y != 0){
      x = x % y;
      result++;
      if (mymap.find(x) != mymap.end()){
         return -1;
      }
      mymap[x] = 1;
      x = x * 10;
   }
   return result;
}
int main(){
   int res = countdigits(2, 5);
   (res == -1)? cout << "count is Infinty" : cout <<"count is "<<res;
   return 0;
}

आउटपुट

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

count is 1

  1. C++ में एक आयत में वर्गों की संख्या गिनें

    =B. लक्ष्य उन वर्गों की संख्या का पता लगाना है जिन्हें LXB आकार का एक आयत समायोजित कर सकता है। ऊपर दिया गया चित्र 3 X 2 आकार का एक आयत दिखाता है। इसमें 2, 2X2 वर्ग और 6,1X1 वर्ग हैं। कुल वर्ग=6+2=8. LXB आकार के प्रत्येक आयत में L*B संख्या 1X1 वर्ग होती है। सबसे बड़े वर्ग BXB आकार के होते ह

  1. C++ में संख्या को विभाजित करने वाली संख्या में अंकों की संख्या ज्ञात कीजिए

    मान लीजिए एक नंबर दिया गया है। हमें उस संख्या के अंकों की संख्या गिननी है जो संख्या को समान रूप से विभाजित करती है। मान लीजिए कि संख्या 1012 है, परिणाम 3 है। तीन अंक 1, 1 और 2 हैं जो समान रूप से 1012 को विभाजित करते हैं। इसे हल करने के लिए, हम मॉड्यूलस ऑपरेशन का उपयोग करके संख्या के प्रत्येक अंक को

  1. A में N अंक इस प्रकार जोड़ें कि वह C++ में प्रत्येक जोड़ के बाद B से विभाज्य हो?

    यहां हम देखेंगे कि एन अंकों को जोड़कर एक संख्या ए कैसे उत्पन्न की जाती है, और प्रत्येक चरण में नए अंक जोड़ते समय यह दूसरी संख्या बी से विभाज्य हो जाएगा। आइए विचार करें कि हम 4 जोड़कर 5 अंकों की संख्या बनाने जा रहे हैं। इसके साथ अतिरिक्त अंक। हम 7 से विभाज्यता की जांच करेंगे। संख्या 8 से शुरू होगी। त