问题描述
作为一位web开发者, 懂得怎样去规划一个页面的尺寸是很重要的。 所以,现给定一个具体的矩形页面面积,你的任务是设计一个长度为 L 和宽度为 W 且满足以下要求的矩形的页面。要求:
- 你设计的矩形页面必须等于给定的目标面积。
- 宽度 W 不应大于长度 L ,换言之,要求 L >= W 。
- 长度 L 和宽度 W 之间的差距应当尽可能小。
返回一个 数组 [L, W],其中 L 和 W 是你按照顺序设计的网页的长度和宽度。
问题分析
采用遍历的方法来寻找答案,从area的平方根开始寻找,一开始L与W都等于area的平方根取整,然后判断LW与area的关系,如果LW>area则减小W,若LW<area则增加L,若LW=area则返回答案。
代码
int* constructRectangle(int area, int* returnSize){
int *nums = (int *)malloc(sizeof(int)*2);
int i = (int)sqrt(area);
if(i*i==area){
nums[0] = i;
nums[1] = nums[0];
}else{
int j = i;
while(i*j!=area){
if(i*j>area){
j--;
}else{
i++;
}
}
nums[0] = i;
nums[1] = j;
}
*returnSize = 2;
return nums;
}