首页 > 试题广场 >

球的计算

[编程题]球的计算
  • 热度指数:6957 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
输入球的中心点和球上某一点的坐标,计算球的半径和体积。

输入描述:
输入第一行为样例数m,接下来m行每行6个整数,分别表示球心和球上一点的坐标。


输出描述:
输出m行,每行2个浮点数分别表示球的半径和体积,保留到小数点后两位。
示例1

输入

1
0 0 0 1 0 0

输出

1.00 4.19
//应用数学公式:
//|AB|=√[(x2-x1)^2+(y2-y1)^2+(z2-z1)^2]
//V=(4/3)πr³
想体现一下Java的特性,有些繁琐了
import java.util.Scanner;
import static java.lang.Math.PI;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int m = sc.nextInt();
        while (m != 0) {
            double x1 = sc.nextDouble();
            double y1 = sc.nextDouble();
            double z1 = sc.nextDouble();
            double x2 = sc.nextDouble();
            double y2 = sc.nextDouble();
            double z2 = sc.nextDouble();

            Ball b = new Ball();
            b.setRadius(x1, x2, y1, y2, z1, z2);
            System.out.println(b.toString());  //限制精度后
            m--;
        }
    }
}
class Geometry {
    protected double side;
    protected double volume;

    public Geometry() {}

    public void setSide(double side) {
        this.side = side;
    }
    public double getSide() {
        return side;
    }
    public double getVolume() {
        volume = side * side * side;
        return volume;
    }
}
class Ball extends Geometry{
    private double x1, x2, y1, y2, z1, z2;
    private double radius;
    private double volume;
    public Ball(){}

    public void setRadius(double x1, double x2, double y1, double y2, double z1, double z2) {
        this.x1 = x1;
        this.y1 = y1;
        this.z1 = z1;
        this.x2 = x2;
        this.y2 = y2;
        this.z2 = z2;
    }

    public double getRadius() {
        return Math.sqrt(Math.pow((x2 - x1), 2) + Math.pow((y2 - y1), 2) + Math.pow((z2 - z1), 2));
    }

    public double getVolume() {
        return (4.0 / 3.0) * PI * Math.pow(getRadius(), 3);
    }

    @Override
    public String toString() {
        return String.format("%.2f", getRadius()) + " " + String.format("%.2f", getVolume());
    }
}


发表于 2020-07-10 23:59:12 回复(0)
Java
import java.text.DecimalFormat;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int m = scanner.nextInt();
        for (int i = 0; i <m; i++) {
            int x1 = scanner.nextInt();
            int y1 = scanner.nextInt();
            int z1 = scanner.nextInt();
            int x2 = scanner.nextInt();
            int y2 = scanner.nextInt();
            int z2 = scanner.nextInt();

            double r = Math.sqrt(Math.pow(x1-x2,2)+Math.pow(y1-y2,2)+Math.pow(z1-z2,2));
            double v = 4.0/3*Math.PI*Math.pow(r,3);

            DecimalFormat f = new DecimalFormat("0.00");
            System.out.println(f.format(r)+" "+f.format(v));
        }


    }
}


发表于 2020-03-20 17:36:13 回复(0)

问题信息

上传者:小小
难度:
2条回答 3641浏览

热门推荐

通过挑战的用户

查看代码
球的计算