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

C++ में एक संख्या तक पहुँचना


मान लीजिए आप एक अनंत संख्या रेखा पर स्थिति 0 पर खड़े हैं। अब लक्ष्य स्थिति target पर है। प्रत्येक चाल में, आप बाएं या दाएं जा सकते हैं। n-वीं चाल (1 से शुरू होकर) में, आप n कदम चलते हैं। हमें गंतव्य तक पहुँचने के लिए आवश्यक न्यूनतम चरणों की संख्या ज्ञात करनी है। इसलिए यदि इनपुट target = 3 है, तो हमें 2 चरणों की आवश्यकता होगी। 0 से 1, फिर 1 से 3।

हल का दृष्टिकोण

इसे हल करने के लिए हम निम्नलिखित चरणों का पालन करेंगे:

  • target := |target|, cnt := 0
  • while target > 0 करते हुए:
    • cnt को 1 से बढ़ाएं
    • target := target - cnt
  • यदि target सम है, तो cnt लौटाएं, अन्यथा cnt + 1 + cnt % 2 लौटाएं

उदाहरण

#include <bits/stdc++.h> 
using namespace std; 

class Solution { 
public: 
    int reachNumber(int target) { 
        target = abs(target); 
        int cnt = 0; 
        while(target > 0){ 
            target -= ++cnt; 
        } 
        return target % 2 == 0 ? cnt : cnt + 1 + cnt % 2; 
    } 
}; 

int main(){ 
    Solution ob; 
    cout << (ob.reachNumber(3)); 
}

इनपुट

3

आउटपुट

2

  1. - C++ में मितव्ययी संख्या (Frugal Number)

    इस समस्या में, हमें एक धनात्मक पूर्णांक N दिया गया है। हमारा कार्य यह जांचने के लिए एक प्रोग्राम बनाना है कि दी गई संख्या मितव्ययी संख्या है या नहीं। मितव्ययी संख्या (FRUGAL NUMBER) − एक संख्या जिसके अंकों की संख्या उस संख्या के अभाज्य गुणनखंडन में अंकों की संख्या से सख्ती से अधिक है। उदाहरण &

  1. C++ में पेंटाटोप संख्या C++ में पेंटाटोप संख्या

    एक पेंटाटोप संख्या को पास्कल के त्रिभुज में पांचवीं संख्या के रूप में वर्णित किया गया है। अब, चूंकि यह पांचवीं संख्या है, इसका मतलब है कि पास्कल के त्रिभुज में कम से कम पांच संख्याएं होनी चाहिए, इसलिए इस श्रृंखला की पहली संख्या 1 4 6 4 1 से शुरू होती है जो पास्कल के त्रिभुज की चौथी पंक्ति है। तो, इस

  1. - C++ में एडम नंबर जांचना

    इस खंड में हम देखेंगे कि दी गई संख्या एडम नंबर है या नहीं, इसकी जांच करने वाला प्रोग्राम कैसे लिखें। कोड में जाने से पहले देखते हैं कि एडम नंबर क्या है? एडम नंबर वह संख्या है, मान लीजिए n, यदि n का वर्ग और n के रिवर्स का वर्ग एक-दूसरे के रिवर्स हैं, तो वह संख्या एडम नंबर है। उदाहरण के लिए संख्या 13