51nod 1284
#include <bits/stdc++.h>
using namespace std;
int main()
{ int S;
cin>>S;
double s=sqrt(S); //x+y>=2sqrt(x*y);当且仅当x=y=sqrt(x*y)时等号成立,最接近中间数时,周长最小
for(int i=(int)s;i>=1;i++)
{ double res=S*1.0/i; //算出S除以整数i实际为多少
if(res==(int)res) //若res为整数则res,i分别为长方形的长宽
{ int c=(res+i)*2;
cout<<c; //此处有疑问,求访问者评论解答:为何两个语句不能合并成cout<<(res+i)*2; ? if中的res 和 i不都已经是整数了嘛
break;}
}
}

浙公网安备 33010602011771号