Computer >> Máy Tính >  >> Lập trình >> C ++

Diện tích tối đa nhỏ nhất có thể có được với chính xác k vết cắt của hình chữ nhật đã cho trong C ++

Trong hướng dẫn này, chúng ta sẽ thảo luận về một chương trình để tìm diện tích lớn nhất nhỏ nhất có thể có được với chính xác k vết cắt của hình chữ nhật đã cho.

Đối với điều này, chúng tôi sẽ được cung cấp các cạnh của hình chữ nhật và số lần cắt có thể được thực hiện. Nhiệm vụ của chúng tôi là tính toán diện tích nhỏ nhất có thể đạt được bằng cách thực hiện số lần cắt cho trước.

Ví dụ

#include <bits/stdc++.h>
using namespace std;
void max_area(int n, int m, int k) {
   if (k > (n + m - 2))
      cout << "Not possible" << endl;
   else {
      int result;
      if (k < max(m, n) - 1) {
         result = max(m * (n / (k + 1)), n * (m / (k + 1)));
      }
      else {
         result = max(m / (k - n + 2), n / (k - m + 2));
      }
      cout << result << endl;
   }
}
int main() {
   int n = 3, m = 4, k = 1;
   max_area(n, m, k);
   return 0;
}

Đầu ra

6