题目描述
给出共享长方体一个顶点的三个面的面积,求它十二条边的边长和。
输入描述:
一行三个整数a, b, c表示面积(1 <= a, b, c <= 10000)。
输出描述:
一行一个整数表示边长和。
示例1
输入
1 1 1
输出
12
示例2
输入
4 6 6
输出
28
思路:设长方体的边长分别为x,y,z,输入的面积分别为a,b,c
既有x*y=a,x*z=b,y*z=c
整理得到x=sqrt(a*b/c);y=sqrt(a*c/b);z=sqrt(b*c/a);
长方体边长和为4*(x+y+z)=4*(sqrt(a*b/c)+sqrt(a*c/b)+sqrt(b*c/a));
得解
注:无需用double类型,用int类型即可,答案不会超过int的范围
代码如下:
#include<stdio.h>
#include<math.h>
int main(){
int a,b,c,ans=0;
scanf("%d%d%d",&a,&b,&c);
ans=sqrt(b*c/a)+sqrt(a*c/b)+sqrt(a*b/c);
printf("%d\n",4*ans);
return 0;
}
#include<math.h>
int main(){
int a,b,c,ans=0;
scanf("%d%d%d",&a,&b,&c);
ans=sqrt(b*c/a)+sqrt(a*c/b)+sqrt(a*b/c);
printf("%d\n",4*ans);
return 0;
}