又一道错了n次

想得太简单

正确代码如下:

 

#include<stdio.h>
#include<math.h>

int main()
{
 int a,b,c=0,a1,b1,c1,v,min;
 int t;

 scanf("%d",&v);
 min=1000000000;
 t=(int)(pow(v,1.0/3))+1;
 for(a=t;a>=1;a--)
 {
  if(v%a==0)
  {
   for(b=(int)(sqrt(v/a));b>0;b--)
    if((v/a)%b==0)
    { c=(v/a)/b;break;}
   if(a*b+b*c+c*a<min)
   {
    min=a*b+b*c+c*a;
    a1=a;b1=b;c1=c;
   }
  }
 }
 printf("%d %d %d\n",a1,b1,c1);
}

 

错误代码如下:

 

#include<stdio.h>
#include<math.h>
int main()
{
int a,b,c=0,v;
int t;double f;
scanf("%d",&v);
t=(int)(pow(v,1.0/3))+1;
for(a=t;a>=1;a--)
{
if(v%a==0)
{
for(b=(int)(sqrt(v/a));b>0;b--)
if((v/a)%b==0)
{	c=(v/a)/b;break;}
if(c!=0)
break;
}
}
printf("%d %d %d\n",a,b,c);
}
posted on 2008-11-08 14:22  pandy  阅读(268)  评论(0编辑  收藏  举报