मान लीजिए एक टनल है जिसकी ऊंचाई 41 है और चौड़ाई बहुत बड़ी है। हमारे पास लंबाई, चौड़ाई और ऊंचाई वाले बक्सों की एक सूची भी है। एक बक्सा टनल से गुजर सकता है यदि उसकी ऊंचाई टनल की ऊंचाई से बिल्कुल कम है। हमें उस आयतन की मात्रा ज्ञात करनी है जो टनल से गुजरते हैं। आयतन लंबाई * चौड़ाई * ऊंचाई है। हमारे पास एक संख्या N है, एक 2D सरणी जिसमें N पंक्तियां और तीन कॉलम हैं।
उदाहरण के लिए, यदि इनपुट N = 4 boxes = [[9,5,20],[3,7,15],[8,15,41],[6,3,42]] है, तो आउटपुट 900 और 315 होगा। हम पहले दो बक्सों को पास कर सकते हैं, आयतन हैं 9 * 5 * 20 = 900 और 3 * 7 * 15 = 315। अन्य बक्सों की ऊंचाई समर्थित नहीं है।
हल करने के चरण
लंबाई, चौड़ाई और ऊंचाई के साथ Box डेटा टाइप परिभाषित करें
volume() फंक्शन परिभाषित करें, जो box लेगा:
return box.length * box.width * box.height
lower() फंक्शन परिभाषित करें, जो box लेगा:
यदि box.height < 41 तो true वापस करें अन्यथा false
मुख्य विधि से, निम्नलिखित करें:
i := 0 से शुरू करें, जब i < N, i को 1 से बढ़ाते हुए करें:
यदि lower(boxes[i]) true है, तो:
volume(boxes[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