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

C++ में बिना किसी रूपांतरण के किसी संख्या के सभी विकल्प प्रिंट करें


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

आइए विषय को बेहतर ढंग से समझने के लिए एक उदाहरण लेते हैं -

Input: number =5678
Output: 5, 56, 567, 5678, 6, 67, 678, 7, 78, 8

इस समस्या को हल करने के लिए, हमें गणितीय तर्क का उपयोग करना होगा। यहां, हम सबसे महत्वपूर्ण बिट को पहले प्रिंट करेंगे, फिर लगातार बिट्स प्रिंट किए जाएंगे।

एल्गोरिदम

Step1: Take a 10’s power number based on the number of digits.
Step2: print values recursively and divide the number by 10 and repeat until the number becomes 0.
Step3: Eliminate the MSB of the number and repeat step 2 with this number.
Step4: Repeat till the number becomes 0.

उदाहरण

#include <iostream>
#include<math.h>
using namespace std;
void printSubNumbers(int n) ;
int main(){
   int n = 6789;
   cout<<"The number is "<<n<<" and the substring of number are :\n";
   printSubNumbers(n);
   return 0;
}
void printSubNumbers(int n){
   int s = log10(n);
   int d = (int)(pow(10, s) + 0.5);
   int k = d;
   while (n) {
      while (d) {
         cout<<(n / d)<<" ";
         d = d / 10;
      }
      n = n % k;
      k = k / 10;
      d = k;
   }
}

आउटपुट

संख्या 6789 है और एक संख्या का विकल्प है -

6 67 678 6789 7 78 789 8 89 9

  1. C++ . में ब्रैकेट नंबर प्रिंट करें

    इस समस्या में हमें व्यंजक दिया जाता है। और हमें ब्रैकेट नंबर सीक्वेंस को प्रिंट करना होता है। आइए समस्या को बेहतर ढंग से समझने के लिए एक उदाहरण देखें। उदाहरण, Input : ((()())()) Output : 1233442551 स्पष्टीकरण - यहां हमें 5 ब्रैकेट जोड़े मिले हैं और हमने उन्हें उनके [घटना के क्रम में प्रिंट किया है

  1. सी ++ प्रोग्राम सशर्त बयान का उपयोग किए बिना "सम" या "विषम" प्रिंट करने के लिए

    इस खंड में हम देखेंगे कि कैसे जांचा जाए कि कोई संख्या विषम है या यहां तक ​​कि किसी भी प्रकार के सशर्त कथनों जैसे (<, =, ==) का उपयोग किए बिना। हम सशर्त बयानों का उपयोग करके आसानी से विषम या सम की जांच कर सकते हैं। हम संख्या को 2 से विभाजित कर सकते हैं, फिर जांच सकते हैं कि शेषफल 0 है या नहीं। यदि 0

  1. पायथन प्रोग्राम में किसी भी लूप का उपयोग किए बिना नंबर श्रृंखला प्रिंट करें

    इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे - समस्या कथन दो संख्या N और K को देखते हुए, हमारी समस्या N से किसी संख्या K को तब तक घटाना है जब तक कि संख्या (N) शून्य (0) से अधिक न हो जाए, एक बार जब N ऋणात्मक या शून्य हो जाए तो हम उसमें K जोड़ना शुरू कर देते हैं जब तक कि वह संख