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

C++ में समान प्रथम और अंतिम अंक वाली संख्याओं की गणना करें


हमें एक अंतराल [प्रथम, अंतिम] दिया गया है। लक्ष्य उन संख्याओं की संख्या ज्ञात करना है जिनके पहले और अंतिम अंक इस अंतराल के भीतर समान हैं। उदाहरण के लिए, 232 का पहला और आखिरी अंक 2 के समान है।

हम इसे i=first से i=last तक ट्रैवर्स करके करेंगे। प्रत्येक संख्या के लिए मैं उसके पहले अंक की तुलना अंतिम अंक से करता हूं, यदि वे समान वृद्धिशील हैं तो गिनती करें।

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

इनपुट -पहला=8 अंतिम=40

आउटपुट − समान प्रथम और अंतिम अंक वाली संख्याओं की संख्या − 5

स्पष्टीकरण − 8 और 40 के बीच की संख्याएं जिनके पहले और अंतिम अंक समान हों -

8, 9, 11, 22, 33

इनपुट -पहला=100 अंतिम=200

आउटपुट − समान पहले और अंतिम अंक वाली संख्याओं की संख्या:5

स्पष्टीकरण − 100 और 200 के बीच की संख्याएँ जिनके पहले और अंतिम अंक समान हों -

101, 111, 121, 131, 141, 151, 161, 171, 181, 191.

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

  • हम श्रेणी [प्रथम, अंतिम] को परिभाषित करने के लिए पहले और अंतिम दो पूर्णांक लेते हैं।

  • फ़ंक्शन getFirstDigit(int num) एक नंबर लेता है और अपना पहला अंक लौटाता है।

  • जबकि num>=10, num को 10 से भाग दें। अंत में num का पहला अंक होगा। यह मान लौटाएं।

  • फ़ंक्शन getCount(int fst,int lst) श्रेणी चर लेता है और समान पहले और अंतिम अंकों के साथ संख्याओं की संख्या देता है।

  • प्रारंभिक गणना 0 के रूप में लें।

  • लूप के लिए i=fst से i=lst तक शुरू का उपयोग करना, प्रत्येक के लिए मैं getFirstDigit (i) को कॉल करके और fdigit में स्टोर करके इसे पहले अंक की गणना करता हूं। (fdigit=getFirstDigit(i)).

  • अंतिम अंक की गणना ldigit=i%10 के रूप में करें।

  • यदि ldigit==fdigit, का अर्थ है कि वे समान हैं। वेतन वृद्धि की संख्या।

  • परिणाम के रूप में वापसी की गिनती।

उदाहरण

#include <bits/stdc++.h>
using namespace std;
//to find starting digit
int getFirstDigit(int num){
   while (num >= 10)
      { num = num/ 10; }
   return num;
}
int getCount(int fst,int lst){
   int count=0;
   for(int i=fst;i<=lst;i++){
      int fdigit=getFirstDigit(i);
      int ldigit=i%10; //to get last digit
      if(fdigit==ldigit) //if both are equal increment count
         { ++count; }
   }
   return count;
}
int main(){
   int first = 10, last = 23;
   cout<<"Numbers with same first and last digits:"<<getCount(first, last);
   return 0;
}

आउटपुट

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

Numbers with same first and last digits:2

  1. केवल C++ में 3 और 8 अंकों वाली संख्या में कनवर्ट करें

    इस ट्यूटोरियल में, हम किसी संख्या को केवल 3 और 8 के रूप में अंकों में बदलने के लिए एक प्रोग्राम पर चर्चा करेंगे। इसके लिए हमें एक यादृच्छिक संख्या प्रदान की जाएगी। हमारा काम है कि संख्या में से 1 जोड़कर या घटाकर या संख्या के अंकों को किसी वांछित अंक में परिवर्तित करके इसके अंकों को केवल 3 और 8 में

  1. C++ में सम और विषम अंकों के योग के बीच पूर्ण अंतर के साथ सभी n-अंकीय संख्याओं को प्रिंट करें

    इस समस्या में, हमें एक पूर्णांक n दिया जाता है, और हमें सभी n-अंकीय संख्याओं को इस प्रकार मुद्रित करना होता है कि सम और विषम स्थानों पर संख्या के अंकों के योग के बीच पूर्ण अंतर 1 है। 0 से आगे की संख्याओं को बनाते समय विचार नहीं किया जाता है। पूर्ण अंतर दोनों संख्याओं के बीच का अंतर है जिसका मान एक

  1. C++ में किसी सरणी संख्या के गुणनफल में अंतिम k अंक ज्ञात करें

    मान लीजिए हमारे पास n तत्वों की एक सरणी है जिसे A कहा जाता है। हमारे पास एक और संख्या k है। हमारा कार्य सरणी A में तत्वों के गुणनफल के अंतिम k अंक ज्ञात करना है। मान लीजिए A =[15, 22, 13, 19, 17], तो गुणनफल 1385670 है, अंतिम k =3 अंक 670 हैं। इस समस्या को हल करने के लिए, हम मॉड्यूल 10k . के तहत संख