d127 - 二、牧场面积
題目描述
題目要求給定一條長度為 L 的圍欄,用它圍成一個長寬皆為整數的矩形牧場,並求出能圍成的最大面積。
解題思路
由於矩形的周長固定為 L,長和寬的關係可以表示為 2 * (length + width) = L,因此 length + width = L / 2。為了最大化面積 length * width,我們需要盡可能使長和寬接近。
當 L/2 為奇數時,最佳的長和寬分別為 (L/2)/2 和 (L/2)/2 + 1。
當 L/2 為偶數時,最佳的長和寬分別為 (L/2)/2 和 (L/2)/2。
程式碼直接計算出 L/2 的值,然後根據其奇偶性計算出最大面積。
複雜度分析
- 時間複雜度: O(1)
- 空間複雜度: O(1)
程式碼
#include <iostream>
using namespace std;
int main(){
long long int a=0;
while(cin >> a){
long long int b=a/2;
if(b%2==1){
cout << (b/2)*(b/2+1) << endl;
}
else{
cout << (b/2)*(b/2) << endl;
}
}
}