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

C++ में दो बिंदुओं के बीच पूर्णांक बिंदुओं की संख्या


इस ट्यूटोरियल में, हम एक प्रोग्राम लिखने जा रहे हैं जो दिए गए दो बिंदुओं के बीच पूर्णांक बिंदुओं की संख्या ढूंढता है।

दिए गए दो बिंदुओं के बीच बिंदुओं की संख्या gcd(abs(x2-x1), abs(y1-y2)) - 1 होगी।

यदि जुड़ने वाली रेखा x-अक्ष के समानांतर है, तो पूर्णांक बिंदुओं की संख्या abs(y1 - y2) - 1 होगी।

यदि जुड़ने वाली रेखा y-अक्ष के समानांतर है, तो पूर्णांक बिंदुओं की संख्या abs(x1 - x2) - 1 होगी।

यदि दोनों बिंदुओं के x बिंदु समान हैं, तो वे x-अक्ष के समानांतर हैं। यदि दोनों बिंदुओं के y बिंदु समान हैं, तो वे y-अक्ष के समानांतर हैं।

आइए एक उदाहरण देखते हैं।

इनपुट

pointOne = [1, 5] pointTwo = [1, 3]

आउटपुट

1

एल्गोरिदम

  • दो बिंदुओं को आरंभ करें।
  • जांचें कि वे x-अक्ष के समानांतर हैं या नहीं।
  • यदि वे x-अक्ष के समानांतर हैं, तो सूत्र abs(y1 - y2) - 1 का उपयोग करें।
  • जांचें कि वे y-अक्ष के समानांतर हैं या नहीं।
  • यदि वे y-अक्ष के समानांतर हैं, तो सूत्र abs(x1 - x2) - 1 का उपयोग करें।
  • यदि वे किसी भी अक्ष के समानांतर नहीं हैं, तो सूत्र gcd(abs(x1-x2), abs(y1-y2)) - 1 का उपयोग करें।
  • परिणाम निकालें और प्रिंट करें।

कार्यान्वयन

उपरोक्त एल्गोरिदम का C++ में कार्यान्वयन निम्नलिखित है:

#include <bits/stdc++.h> using namespace std; int gcd(int a, int b) {    if (b == 0) {       return a;    }    return gcd(b, a % b); } int getCount(int pointOne[], int pointTwo[]) {    if (pointOne[0] == pointTwo[0]) {       return abs(pointOne[1] - pointTwo[1]) - 1;    }    if (pointOne[1] == pointTwo[1]) {       return abs(pointOne[0] - pointTwo[0]) - 1;    }    return gcd(abs(pointOne[0] - pointTwo[0]), abs(pointOne[1] - pointTwo[1])) - 1; } int main() {    int pointOne[] = {1, 3}, pointTwo[] = {10, 12};    cout << getCount(pointOne, pointTwo) << endl;    return 0; }

आउटपुट

यदि आप उपरोक्त कोड चलाते हैं, तो आपको निम्नलिखित परिणाम मिलेगा।

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

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

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

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

  1. C++ में BST के दो नोड्स के बीच अधिकतम तत्व C++ में BST के दो नोड्स के बीच अधिकतम तत्व

    समस्या कथन N तत्वों का एक ऐरे और दो पूर्णांक A, B दिए गए हैं जो दिए गए ऐरे से संबंधित हैं। arr[0] से arr[n-1] तक तत्व डालकर एक बाइनरी सर्च ट्री बनाएं। कार्य A से B तक के पथ में अधिकतम तत्व ढूंढना है। उदाहरण यदि ऐरे है {24, 23, 15, 36, 19, 41, 25, 35} तो हम BST को निम्नानुसार बना सकते हैं: यदि हम