【
웹 개발자는 페이지의 크기가 매우 중요하다 계획하는 방법을 알고있다. 이제 페이지의 특정 사각형 영역을 제공, 당신의 작업은 길이 L과 직사각형 페이지의 다음과 같은 요구 사항을 만족 W 폭을 설계하는 것입니다. 요구 사항 :
디자인 1. 페이지는 사각형 주어진 대상 지역과 동일해야합니다.
2. 폭 W는 길이 L을 초과하지 않아야한다, 즉 L> = W.이 필요
(3) 길이 L과 폭 W의 차이는 가능한 한 작게해야한다.
당신은 출력 길이 (L)에 필요 페이지 순서 W. 설계 폭
예 :
입력 4
출력 [2,2]
설명 : 대상 영역이 구성 프로그램 가능한 모든 [1,4], [2,2]을 갖는 4이다 [4,1].
그러나, 제 2 항에있어서, [1,4]은 요구 사항을 충족하지 않는, 제 3 항에있어서, [2,2] 2 W 이상의 출력 (2)의 길이 L [4]보다 폭의 요구 사항을 충족시킨다.
설명 :
주어진 양의 정수 및 10,000,000보다 크지.
설계해야 페이지의 길이와 폭은 양의 정수입니다.
출처 : 숙박 버튼 (LeetCode)
링크 : HTTPS : //leetcode-cn.com/problems/construct-the-rectangle는
모든 네트워크에서 공제 저작권. 상업 무단 전재 소스를 표시하시기 바랍니다 승인 된 공식, 비상업적 재판에 문의하시기 바랍니다.
】
길이 L과 폭 W 상기리스트에 열거 방지되도록 가능한 한 작게되어야 사이의 간격 :위한은 (i = (면적 + 1) / 2; I> 1; 난 -)
int* constructRectangle(int area, int* returnSize){
int i, j;
int res = 0;
int *out;
int lastLenght = 0;
int weith;
out = (int *)malloc(sizeof(int) * 2);
*returnSize = 2;
for (i = (area + 1)/2; i > 1; i--) {
res = area % i;
if (res == 0) {
weith = area/i;
if(weith > i) {
break;
}
lastLenght = i;
}
}
if (lastLenght != 0) {
out[0] = lastLenght;
out[1] = area/lastLenght;
} else {
out[0] = area;
out[1] = 1;
}
return out;
}