一个矩形的面积为S,已知该矩形的边长都是整数,求所有满足条件的矩形中,周长的最小值。例如:S = 24,那么有{1 24} {2 12} {3 8} {4 6}这4种矩形,其中{4 6}的周长最小,为20。
Input
输入1个数S(1 <= S <= 10^9)。
Output
输出最小周长。
Input示例
24
Output示例
20
李陶冶
(题目提供者)
既然都说了是整数,sqrt一下暴力跑起来。
#include <cstdio>
#include <cmath>
#include <algorithm>
using namespace std;
int main()
{
int n,i;
while(~scanf("%d",&n))
{
for(i=(int)sqrt(n+0.5);n%i;i--);
printf("%d\n",2*((n/i)+i));
}
return 0;
}

针对给定的矩形面积S,寻找具有整数边长的所有可能矩形中周长最小的那个。通过枚举和平方根逼近的方法找到最优解。

515

被折叠的 条评论
为什么被折叠?



