题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5224
题意:
给定一张长方形纸的面积,其边长均为整数,求最小周长。
输入:首行输入案例数T,接下来T行分别输入测试面积n;
输出:单行输出最小周长。
案例:
Sample Input 3 2 7 12 Sample Output
6
16
14
分析:
此题,本人也是抱着尝试的态度,没想到竟然AC。矩形面积为长*宽,其中一条短边长定不过面积的平方根值,矩形周长为(长*宽)*2,只需找出(长+宽)的最小值即可。
源代码:
1 #include<iostream> 2 #include<cmath> 3 using namespace std; 4 int main() 5 { 6 int T,k; 7 long n,min; 8 cin>>T;//案例数 9 while(T--) 10 { 11 cin>>n;//测试数据 12 min=n+1;//假定min为最小周长的二分之一 13 k=int(sqrt(n)+1);//矩形短边边长测试数据最大值 14 for(int i=2;i<=k;i++) 15 if(n%i==0&&min>((n/i)+i))//比较判别最小周长的二分之一 16 min=i+n/i; 17 cout<<2*min<<endl;//输出最小周长 18 } 19 return 0; 20 }
时间: 2024-12-22 18:16:33