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

C++ में न्यूनतम गुणनखंड


मान लीजिए हमारे पास एक धनात्मक पूर्णांक x है, हमें सबसे छोटा धनात्मक पूर्णांक b ढूंढना है जिसके प्रत्येक अंक का गुणनफल x के बराबर हो। यदि ऐसा कोई उत्तर नहीं है तो 0 लौटाएं।

उदाहरण के लिए, यदि इनपुट 48 है, तो आउटपुट 68 होगा।

हल करने की विधि

हम 9 से 2 तक के अंकों से गुणनखंड करने का प्रयास करेंगे:

  • ret = 0, mul = 1।
  • यदि a < 2, तो a लौटाएं।
  • i = 9 से 2 तक घटते क्रम में:
    • जब तक a % i == 0:
      • ret = i * mul + ret
      • mul *= 10
      • a /= i
  • यदि a < 2 और ret < INT_MAX, तो ret लौटाएं, अन्यथा 0।

उदाहरण

बेहतर समझ के लिए निम्न कार्यान्वयन देखें:

#include <bits/stdc++.h> using namespace std; typedef long long int lli; class Solution { public:    int smallestFactorization(int a) {       lli ret = 0;       lli mul = 1;       if (a < 2)          return a;       for (lli i = 9; i >= 2; i--) {          while (a % i == 0) {             ret = i * mul + ret;             mul *= 10;             a /= i;          }       }       return a < 2 && ret < INT_MAX ? ret : 0;    } }; main(){    Solution ob;    cout << (ob.smallestFactorization(48)); }

इनपुट

48

आउटपुट

68

  1. C++ में जंप गेम V C++ में जंप गेम V

    मान लीजिए हमारे पास arr नामक पूर्णांकों की एक सरणी और एक पूर्णांक d है। एक चरण में हम इंडेक्स i से कूद सकते हैं: i + x जहां: i + x < n और x की सीमा 1 से d है। = 0 और x की सीमा 1 से d है। arr[k] हो। हम सरणी के किसी भी इंडेक्स से कूदना शुरू कर सकते हैं। हमें अधिकतम इंडेक्स की संख्या ज्ञात करनी है ज

  1. C++ में न्यूनतम नाइट मूव्स C++ में न्यूनतम नाइट मूव्स

    मान लीजिए हमारे पास एक अनंत शतरंज बोर्ड है जिसके कोऑर्डिनेट्स -इनफिनिटी से +इनफिनिटी तक हैं, और हमारे पास [0, 0] स्क्वायर पर एक नाइट है। नाइट के 8 संभावित मूव्स होते हैं, जैसा कि नीचे दिखाया गया है। प्रत्येक मूव कार्डिनल डायरेक्शन में दो स्क्वायर, फिर ऑर्थोगोनल डायरेक्शन में एक स्क्वायर होता है। ह

  1. - C++ में न्यूनतम पथ योग (Minimum Path Sum)

    मान लीजिए हमारे पास एक m x n मैट्रिक्स है जो गैर-ऋणात्मक पूर्णांकों से भरा है। शीर्ष बाएं कोने से नीचे दाएं कोने तक एक पथ ढूंढें जो अपने पथ के साथ सभी संख्याओं के योग को न्यूनतम करता है। गति किसी भी समय केवल नीचे या दाएं हो सकती है। उदाहरण के लिए, यदि मैट्रिक्स इस तरह है: 131 151 421 आउटपुट 7 ह