मान लीजिए कोई सुरंग है जिसकी ऊंचाई 41 और चौड़ाई बहुत बड़ी है। हमारे पास लंबाई, चौड़ाई और ऊंचाई वाले बक्सों की एक सूची भी है। एक बॉक्स सुरंग से गुजर सकता है यदि उसकी ऊंचाई सुरंग की ऊंचाई से बिल्कुल कम है। हमें सुरंग से गुजरने वाले आयतन की मात्रा ज्ञात करनी होगी। आयतन लंबाई * चौड़ाई * ऊँचाई है। तो हमारे पास एक संख्या N है, एक 2D सरणी जिसमें N पंक्तियाँ और तीन स्तंभ हैं।
इसलिए, यदि इनपुट एन =4 बॉक्स =[[9,5,20], [3,7,15], [8,15,41], [6,3,42]] की तरह है, तो आउटपुट होगा 900 और 315 हो हम पहले दो बॉक्स पास कर सकते हैं, वॉल्यूम 9 * 5 * 20 =900 और 3 * 7 * 15 =315 हैं। अन्य बॉक्स की ऊंचाई समर्थित नहीं है।
इसे हल करने के लिए, हम इन चरणों का पालन करेंगे -
-
लंबाई, चौड़ाई और ऊंचाई के साथ बॉक्स डेटा प्रकार परिभाषित करें
-
फ़ंक्शन वॉल्यूम () को परिभाषित करें, यह बॉक्स लेगा,
-
वापसी बॉक्स.लंबाई * बॉक्स.चौड़ाई * बॉक्स.ऊंचाई
-
एक फ़ंक्शन को कम परिभाषित करें (), यह बॉक्स लेगा,
-
यदि बॉक्स। ऊंचाई <41 अन्यथा गलत है तो सही लौटें
-
मुख्य विधि से, निम्न कार्य करें:,
-
प्रारंभ करने के लिए मैं:=0, जब मैं <एन, अद्यतन (मैं 1 से बढ़ाएँ), यह करें:
-
यदि निचला (बक्से [i]) सत्य है, तो:
-
प्रदर्शन मात्रा (बक्से[i])
-
-
उदाहरण
आइए बेहतर समझ पाने के लिए निम्नलिखित कार्यान्वयन देखें -
#include <stdio.h> #define N 4 struct Box{ int length, width, height; }; int volume(struct Box box){ return box.length*box.width*box.height; } int lower(struct Box box){ return box.height < 41; } int solve(struct Box boxes[]){ for (int i = 0; i < N; i++) if (lower(boxes[i])) printf("%d\n", volume(boxes[i])); } int main(){ struct Box boxes[N] = {{9,5,20},{3,7,15},{8,15,41},{6,3,42}}; solve(boxes); }
इनपुट
4, {{9,5,20},{3,7,15},{8,15,41},{6,3,42}}
आउटपुट
900 315