Giả sử có một đường hầm có chiều cao là 41 và chiều rộng rất lớn. Chúng tôi cũng có một danh sách các hộp với chiều dài, chiều rộng và chiều cao. Một hộp có thể đi qua đường hầm nếu chiều cao của nó chính xác nhỏ hơn chiều cao đường hầm. Chúng tôi sẽ phải tìm lượng thể tích được đi qua đường hầm. Khối lượng là chiều dài * chiều rộng * chiều cao. Vì vậy, chúng tôi có một số N, một mảng 2D với N hàng và ba cột.
Vì vậy, nếu đầu vào giống như N =4 hộp =[[9,5,20], [3,7,15], [8,15,41], [6,3,42]], thì đầu ra sẽ là 900 và 315, chúng ta có thể vượt qua hai hộp đầu tiên, thể tích là 9 * 5 * 20 =900 và 3 * 7 * 15 =315. Chiều cao của các hộp khác không được hỗ trợ.
Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -
-
Xác định kiểu dữ liệu Hộp với chiều dài, chiều rộng và chiều cao
-
Xác định khối lượng hàm (), hộp này sẽ có,
-
return box.length * box.width * box.height
-
Xác định một hàm thấp hơn (), điều này sẽ có hộp,
-
trả về true nếu box.height <41, ngược lại là false
-
Từ phương thức chính, thực hiện như sau :,
-
để khởi tạo i:=0, khi i
-
nếu thấp hơn (ô [i]) là đúng, thì:
-
khối lượng hiển thị (hộp [i])
-
-
Ví dụ
Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -
#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); }
Đầu vào
4, {{9,5,20},{3,7,15},{8,15,41},{6,3,42}}
Đầu ra
900 315