题解 | #长方体#
长方体
https://ac.nowcoder.com/acm/problem/15869
题目描述
给出共享长方体一个顶点的三个面的面积,求它十二条边的边长和。
输入描述:
一行三个整数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;
}
算法入门班习题题解&感悟 文章被收录于专栏
这是本人对于算法入门班共十三章习题的题解与个人的一些感悟,本人写题解的目的是对于某些经典的/陌生的/无从下手的/思维方向错误的题目加深印象。 希望自己能够在学习算法的路上走得更远,今天也是努力学习的一天!