POJ 3536-Beer Refrigerator 水题,暴搜

POJ 3536-Beer Refrigerator 水题,暴搜

刚开始想过用暴搜的,但是有点担心会超时,一直还以为有什么数学上的方法呢;可是....

#include < iostream >
#include
< algorithm >
#include
< cstdio >
#include
< cmath >
using   namespace  std;


int  main ()
{

    
int min;
    
int n;
    
int i,j,k;
    
int mi,mj,mk;
    
while(scanf("%d",&n)!=EOF)
    
{
        min
=1000000000;
        
for(i=1;i<=sqrt((double)n)+1;i++)
        
{

            
if(n%i==0)
            
{

                
for(j=1;j<=n/i;j++)
                
{

                    
if(n%(i*j)==0)
                    
{
                        k
=n/(i*j);

                        
if(i*j+i*k+j*k<min)
                        
{
                            min
=i*j+i*k+j*k;
                            mi
=i;mj=j;mk=k;
                        }

                    }

                }

            }

        }

        printf(
"%d %d %d",mi,mj,mk);

    }

    
return 0;
}




    


 

你可能感兴趣的:(POJ 3536-Beer Refrigerator 水题,暴搜)