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

इकाई क्षेत्र के वर्गों की संख्या निर्धारित करें कि C++ में एक रेखा गुजरेगी?

इसका उद्देश्य दिए गए दो समापन बिंदुओं (x1,y1) और (x2,y2) से होकर गुजरने वाले वर्गों की संख्या निर्धारित करना है।

उन वर्गों की संख्या ज्ञात करने के लिए जिनसे हमारी रेखा गुजरती है, हमें ज्ञात करना होगा:x बिंदुओं (dx) =x2-x1 के बीच का अंतर, y बिंदुओं (dy) =y2-y1 के बीच का अंतर, dx और dy को जोड़ना और घटाना उनका gcd (परिणाम) =dx + dy – gcd (dx, dy).

UnitSquares(int x1, int y1, int x2, int y2) फ़ंक्शन चार मान x1,y1 और x2,y2 लेता है। x2 और x1 के बीच पूर्ण अंतर और y2 और y1 के बीच पूर्ण अंतर की गणना की जाती है। dx और dy को dx,dy के gcd से जोड़ा और घटाया जाता है। परिणाम को उत्तर में संग्रहीत किया जाता है और मुद्रण के लिए मुख्य पर वापस कर दिया जाता है।

int unitSquares(int x1, int y1, int x2, int y2){
   int dx = abs(x2 - x1);
   int dy = abs(y2 - y1);
   int ans = dx + dy - __gcd(dx, dy);
   return ans;
}

उदाहरण

आइए एक रेखा से गुजरने वाले वर्ग इकाई क्षेत्र की संख्या निर्धारित करने के लिए निम्नलिखित कार्यान्वयन को देखें।

#include<iostream>
#include <algorithm>
using namespace std;
int unitSquares(int x1, int y1, int x2, int y2){
   int dx = abs(x2 - x1);
   int dy = abs(y2 - y1);
   int ans = dx + dy - __gcd(dx, dy);
   return ans;
}
int main(){
   int x1 = 3, y1 = 3, x2 = 12, y2 = 6;
   cout<<"The line passes through "<<unitSquares(x1, y1, x2, y2)<<" squares ";
   return 0;
}

आउटपुट

उपरोक्त कोड निम्न आउटपुट उत्पन्न करेगा -

The line passes through 9 squares

  1. C++ में एक चाल में बिशप द्वारा देखे जा सकने वाले वर्गों की कुल संख्या की गणना करें

    एक शतरंज की बिसात पर जिसे 8 X 8 ग्रिड के रूप में दर्शाया गया है, हमें पंक्ति और स्तंभ स्थिति के रूप में बिशप का स्थान दिया गया है। लक्ष्य उन वर्गों की कुल संख्या का पता लगाना है जो बिशप एक चाल में देख सकते हैं। हम जानते हैं कि बिशप सभी दिशाओं में घूम सकता है (तिरछे बाएँ ऊपर/नीचे और दाएँ ऊपर/नीचे)।

  1. जांचें कि कोई रेखा सी ++ में मूल से गुजरती है या नहीं

    इस भाग में हम यह देखेंगे कि किसी रेखाखंड के मूल बिंदु से होकर गुजरता है या नहीं इसकी जांच कैसे की जाती है। रेखा खंड के अंतिम बिंदुओं को दर्शाने के लिए हमारे पास दो निर्देशांक बिंदु हैं। दृष्टिकोण सरल है। यदि हम सरल रेखा का समीकरण बना सकते हैं, और समीकरण में (0, 0) रखकर, और समीकरण संतुष्ट हो जाता है

  1. किसी सरणी में न्यूनतम संख्या जोड़ें ताकि योग C++ में भी हो जाए?

    मान लीजिए कि कुछ संख्याओं के साथ एक सरणी है। हमें कम से कम यह बताना होगा कि तत्वों के योग को सम बनाने के लिए इसमें कितनी संख्याएँ जोड़ी जाएँगी। संख्या 0 से अधिक होनी चाहिए। इसलिए यदि तत्वों का योग विषम है, तो हम 1 जोड़ देंगे, लेकिन यदि योग पहले से ही सम है, तो हम इसे सम बनाने के लिए इसमें 2 जोड़ दें