1283 最小周长(水题)

Posted Veritas des Liberty

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1283 最小周长(水题)相关的知识,希望对你有一定的参考价值。

题目来源: 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 最小周长(水题)的主要内容,如果未能解决你的问题,请参考以下文章

51nod 1283 最小周长

1283 最小周长

51Nod 1283 最小周长

1090 3个数和为0 1091 线段的重叠 1182 完美字符串 1283 最小周长 1284 2 3 5 7的倍数

51nod 最小周长

hihocoder -1283 hiho密码(水题)