题目链接:http://poj.org/problem?id=3536
在体积固定的情况下,表面积最小时的长,宽,高。
这里枚举长,宽,根据体积计算高。
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
#include <iostream> #include <algorithm> using namespace std; int x=0,y=0; void f(int n) { int min=0x3f3f3f3f; x=1; y=1; for(int i=1; i*i<=n; i++) { if(n%i==0) { for(int j=i; i*j<=n; j++) if(n%(i*j)==0) { int t=2*(i*j+i*(n/(i*j))+j*(n/(i*j))); if(t<min) { min=t; x=i; y=j; } } } } } int main() { int n; cin>>n; f(n); cout<<x<<' '<<y<<' '<<n/(x*y)<<endl; return 0; }