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

C++ का उपयोग करके वांछित पृष्ठ पर जाने के लिए पृष्ठ की न्यूनतम संख्या बदल जाती है।

समस्या कथन

N पृष्ठों की एक पुस्तक को देखते हुए, कार्य वांछित पृष्ठ K को प्राप्त करने के लिए पृष्ठ घुमावों की न्यूनतम संख्या की गणना करना है।

  • हम या तो किताब के सामने की तरफ से (यानी पेज 1 से) या किताब के पिछले हिस्से (यानी पेज नंबर N) से पन्ने पलटना शुरू कर सकते हैं।

  • प्रत्येक पृष्ठ के दो पहलू होते हैं, आगे और पीछे, पहले पृष्ठ को छोड़कर, जिसमें केवल पिछला भाग होता है और अंतिम पृष्ठ जिसमें पुस्तक के पृष्ठों की संख्या के आधार पर केवल पीछे की ओर हो सकता है।

अगर N =5 और K =4 तो हमें कम से कम 1 पेज पलटना होगा -

  • अगर हम सामने से पेज-टर्निंग शुरू करते हैं तो 2 टर्न की आवश्यकता होती है (1) -> (2, 3) -> (4,5)

  • अगर हम पीछे से पेज-मोड़ना शुरू करते हैं, (4, 5) 1 टर्न की आवश्यकता है, पेज टर्न =1

इसलिए, बदले गए पृष्ठों की न्यूनतम संख्या =1.

एल्गोरिदम

अंतिम परिणाम की गणना के लिए नीचे दिए गए सूत्र का उपयोग करें -

1. If K is even, front distance = (K – 0)/2 and back distance = (N – 1 – K)/2
2. If K is odd, front distance = (K – 1)/2 and back distance = (N – K)/2

उदाहरण

#include <iostream>
#include <algorithm>
using namespace std;
int getMinPageTurns(int n, int k){
   if (n % 2 == 0) {
      ++n;
   }
   return min((k + 1) / 2, (n -k + 1) / 2);
}
int main(){
   int n = 5, k = 4;
   cout << "Required page turns = " << getMinPageTurns(n, k) << endl;
   return 0;
}

आउटपुट

जब आप उपरोक्त प्रोग्राम को संकलित और निष्पादित करते हैं। यह निम्न आउटपुट उत्पन्न करता है -

Required page turns = 1

  1. C++ का उपयोग करके XOR को अधिकतम बनाने के लिए हटाए जाने वाले तत्वों की न्यूनतम संख्या।

    समस्या कथन एक संख्या N को देखते हुए। कार्य N के बीच में हटाए जाने वाले तत्वों की न्यूनतम संख्या को खोजना है ताकि शेष तत्वों से प्राप्त XOR अधिकतम हो। एल्गोरिदम 1. If n is 1 or 2 then there is no need to remove any element. Hence answer is zero 2. Find a number which is power of 2 and greater than o

  1. C++ का उपयोग करके माध्यिका को x के बराबर बनाने के लिए जोड़ने के लिए तत्वों की न्यूनतम संख्या।

    समस्या कथन आकार n और तत्व x की एक सरणी गिरफ्तारी को देखते हुए, कार्य औसत को x के बराबर बनाने के लिए सरणी में जोड़े जाने वाले तत्वों की न्यूनतम संख्या को खोजना है। n की लंबाई के साथ एक सरणी में एक माध्यिका एक तत्व है जो गैर-घटते क्रम में तत्वों को क्रमबद्ध करने के बाद स्थिति संख्या (n-1) / 2 पर कब्

  1. C++ का प्रयोग करते हुए संख्या के गुणनखंडों का न्यूनतम योग ज्ञात कीजिए।

    यहां हम देखेंगे कि किसी दी गई संख्या के कारकों का न्यूनतम योग कैसे प्राप्त करें। मान लीजिए एक संख्या 12 है। हम इसे अलग-अलग तरीकों से गुणनखंडित कर सकते हैं - 12 =12 * 1 (12 + 1 =13) 12 =2 * 6 (2 + 6 =8) 12 =3 * 4 (3 + 4 =7) 12 =2 * 2 * 3 (2 + 2 + 3 =7) न्यूनतम योग 7 है। हम एक संख्या लेंगे और न्यून