• 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
    " , 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;
    }
    

      

    永远渴望,大智若愚(stay hungry, stay foolish)
  • 相关阅读:
    UltraSoft
    UltraSoft
    UltraSoft
    UltraSoft
    UltraSoft
    [技术博客] 使用邮箱验证并激活账户
    OO第一单元作业总结
    OO第一单元总结
    buaaoo_second_assignment
    buaaoo_first_improvement
  • 原文地址:https://www.cnblogs.com/h-hkai/p/7475475.html
Copyright © 2020-2023  润新知