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

C++ में दो बिंदुओं के बीच समाकलन बिंदुओं की संख्या

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

दिए गए दो बिंदुओं के बीच अंकों की संख्या होगी gcd(abs(x2), 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++ में मितव्ययी संख्या

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

  1. सी++ पेंटाटोप नंबर

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

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

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