码迷,mamicode.com
首页 > 其他好文 > 详细

1283 最小周长(水题)

时间:2017-09-04 20:43:19      阅读:224      评论:0      收藏:0      [点我收藏+]

标签:com   namespace   output   problem   来源   print   long   out   scan   

题目来源: Codility
一个矩形的面积为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

虽然是一道简单的水题,但是通过比较别人的代码和自己的代码,还是学到了一些知识

别人的代码

15ms  2060kb

#include <bits/stdc++.h>
using namespace std;

int main()
{
    long long s , i , j;
    scanf("%lld", &s);
    long long ans = 0x3f3f3f3f;
    i = (long long)sqrt(s);
    while(s % i != 0)
        i--;
    ans = i * 2 + (s / i) * 2;
    printf("%lld\n" , ans);
    return 0;
}

我的代码

156ms  1706kb

#include<stdio.h>
#include<string.h>
#include<algorithm>

using namespace std;

int i,j,k;
int maxn = 0;
int main()
{
	int s;
	scanf("%d",&s);
	j=s;
	for(i=1; i<s/2; i++)
	{
		if(s%i==0)	
		{
			j = s/i;
			if(i>j)	break;
			maxn = max(i,maxn);
		}			
		
	}
	k = s/maxn;
	printf("%d",2*(k+maxn));
	return 0;
}

  

 

1283 最小周长(水题)

标签:com   namespace   output   problem   来源   print   long   out   scan   

原文地址:http://www.cnblogs.com/ruruozhenhao/p/7475475.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!