1283 最小周长

1283 最小周长

题目来源: Codility
基准时间限制:1 秒 空间限制:131072 KB 分值: 5 难度:1级算法题
收藏
关注
一个矩形的面积为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

其实只要两个数相差越小周长就越小.
 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 int main(){
 4   int n;
 5   scanf("%d",&n);
 6   int x,y;
 7   x=y=sqrt(n);
 8   while(x*y!=n){
 9     if(x*y>n)
10       x--;
11     else if(x*y<n)
12       y++;
13     else
14       break;
15   }
16   printf("%d
",2*(x+y));
17   return 0;
18 }
原文地址:https://www.cnblogs.com/zllwxm123/p/7373401.html