L1-067 洛希极限(Java)

科幻电影《流浪地球》中一个重要的情节是地球距离木星太近时,大气开始被木星吸走,而随着不断接近地木"刚体洛希极限",地球面临被彻底撕碎的危险。但实际上,这个计算是错误的。

洛希极限(Roche limit)是一个天体自身的引力与第二个天体造成的潮汐力相等时的距离。当两个天体的距离少于洛希极限,天体就会倾向碎散,继而成为第二个天体的环。它以首位计算这个极限的人爱德华·洛希命名。(摘自百度百科)

大天体密度与小天体的密度的比值开 3 次方后,再乘以大天体的半径以及一个倍数(流体对应的倍数是 2.455,刚体对应的倍数是 1.26),就是洛希极限的值。例如木星与地球的密度比值开 3 次方是 0.622,如果假设地球是流体,那么洛希极限就是 0.622×2.455=1.52701 倍木星半径;但地球是刚体,对应的洛希极限是 0.622×1.26=0.78372 倍木星半径,这个距离比木星半径小,即只有当地球位于木星内部的时候才会被撕碎,换言之,就是地球不可能被撕碎。

本题就请你判断一个小天体会不会被一个大天体撕碎。

输入格式:

输入在一行中给出 3 个数字,依次为:大天体密度与小天体的密度的比值开 3 次方后计算出的值(≤1)、小天体的属性(0 表示流体、1 表示刚体)、两个天体的距离与大天体半径的比值(>1 但不超过 10)。

输出格式:

在一行中首先输出小天体的洛希极限与大天体半径的比值(输出小数点后2位);随后空一格;最后输出 ^_^ 如果小天体不会被撕碎,否则输出 T_T。

输入样例 1:

复制代码
0.622 0 1.4

输出样例 1:

复制代码
1.53 T_T

输入样例 2:

复制代码
0.622 1 1.4

输出样例 2:

复制代码
0.78 ^_^

解题思路

  1. 计算洛希极限 :根据给定的密度比值(记为 densityRatio )、小天体的属性(流体或刚体,记为 bodyType )和两个天体的距离与大天体半径的比值(记为 distanceRatio),计算洛希极限。洛希极限的计算公式为: Roche Limit=densityRatio×multiplierRoche Limit=densityRatio×multiplier 其中,流体的乘数是 2.455,刚体的乘数是 1.26。
  2. 判断结果 :如果输入的距离与大天体半径的比值大于计算出的洛希极限,则小天体不会被撕碎(输出 ^_^ ),否则会被撕碎(输出 T_T)。

解题过程中遇到的问题

暂无

代码

java 复制代码
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        double densityRatio = scanner.nextDouble();
        int bodyType = scanner.nextInt();
        double distanceRatio = scanner.nextDouble();

        double rocheLimit = calculateRocheLimit(densityRatio, bodyType);
        System.out.printf("%.2f ", rocheLimit);
        System.out.println(distanceRatio > rocheLimit ? "^_^" : "T_T");
    }

    private static double calculateRocheLimit(double densityRatio, int bodyType) {
        double multiplier = bodyType == 0 ? 2.455 : 1.26;
        return densityRatio * multiplier;
    }
}
相关推荐
Kuo-Teng24 分钟前
LeetCode 198: House Robber
java·算法·leetcode·职场和发展·动态规划
2501_9411114025 分钟前
C++中的状态模式实战
开发语言·c++·算法
SelectDB35 分钟前
十亿 JSON 秒级响应:Apache Doris vs ClickHouse,Elasticsearch,PostgreSQL
算法
小七mod39 分钟前
【Spring】Spring Boot自动配置的案例
java·spring boot·spring·自动配置·源码·ioc·aop
红石榴花生油1 小时前
Docker + Nginx 部署 Java 项目(JAR 包 + WAR 包)实战笔记
java·tomcat·maven
带刺的坐椅1 小时前
Solon AI 开发学习 - 1导引
java·ai·openai·solon·mcp
sg_knight1 小时前
RabbitMQ 中的预取值(prefetch)详解:如何真正提升消费端性能?
java·spring boot·spring·spring cloud·消息队列·rabbitmq·预取值
Dxxyyyy1 小时前
零基础学JAVA--Day34(Map接口+HashTable+HashMap+TreeSet+TreeMap+开发中如何选择集合实现类?(重要))
java·开发语言
橘颂TA1 小时前
【剑斩OFFER】算法的暴力美学——除自身以外数组的乘积
算法·leetcode·职场和发展·结构与算法
源码之家1 小时前
机器学习:基于python租房推荐系统 预测算法 协同过滤推荐算法 房源信息 可视化 机器学习-线性回归预测模型 Flask框架(源码+文档)✅
大数据·python·算法·机器学习·数据分析·线性回归·推荐算法