L1-067 洛希极限(10分)[java][python]

题目ID :L1-067
分数 :10分
语言:Java / Python

题目描述

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

洛希极限(Roche limit)是一个天体自身的引力与第二个天体造成的潮汐力相等时的距离。当两个天体的距离少于洛希极限,天体就会倾向碎散,继而成为第二个天体的环。

计算公式

  • 洛希极限 = 密度比值 × 倍数(大天体半径倍数)

倍数

  • 流体:2.455
  • 刚体:1.26

判断条件:如果两个天体的距离 / 大天体半径 >= 洛希极限,则不会被撕碎。

输入格式

输入在一行中给出3个数字,依次为:

  1. 大天体密度与小天体的密度的比值开3次方后计算出的值(≤1)
  2. 小天体的属性(0表示流体、1表示刚体)
  3. 两个天体的距离与大天体半径的比值(>1 但不超过10)

输出格式

在一行中首先输出小天体的洛希极限与大天体半径的比值(输出小数点后2位);随后空一格;最后输出:

  • ^_^ 如果小天体不会被撕碎
  • T_T 如果小天体会被撕碎

输入样例

复制代码
0.622 0 1.4

输出样例

复制代码
1.53 T_T

解题思路

  1. 根据小天体属性(0=流体,1=刚体)选择对应的倍数
  2. 计算洛希极限 = 密度比值 × 倍数
  3. 比较距离与大天体半径的比值与洛希极限:
    • 如果距离比 >= 洛希极限:不会被撕碎,输出 ^_^
    • 如果距离比 < 洛希极限:会被撕碎,输出 T_T

代码实现

Java

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

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        double density = scanner.nextDouble();  // 密度比值开三次方
        int type = scanner.nextInt();            // 0=流体, 1=刚体
        double dist = scanner.nextDouble();       // 距离与大天体半径的比值

        // 计算洛希极限
        double roche = type == 0 ? density * 2.455 : density * 1.26;

        // 输出结果
        System.out.printf("%.2f ", roche);
        if (dist >= roche) {
            System.out.println("^_^");
        } else {
            System.out.println("T_T");
        }
    }
}

Python

python 复制代码
density, typ, dist = map(float, input().split())
typ = int(typ)

# 计算洛希极限
roche = density * 2.455 if typ == 0 else density * 1.26

# 输出结果
print(f"{roche:.2f}", end=" ")
if dist >= roche:
    print("^_^")
else:
    print("T_T")

运行验证

样例输入 样例输出 结果
0.622 0 1.4 1.53 T_T
0.622 1 1.4 0.78 _

样例1解释:密度比0.622,流体倍数2.455,洛希极限=1.53,距离比1.4 < 1.53,会被撕碎。

样例2解释:密度比0.622,刚体倍数1.26,洛希极限=0.78,距离比1.4 >= 0.78,不会被撕碎。

复杂度分析

  • 时间复杂度:O(1)
  • 空间复杂度:O(1)

总结

本题考察简单的数学计算和条件判断:

  1. 根据属性选择正确的倍数
  2. 计算洛希极限
  3. 比较判断并输出相应表情
相关推荐
繁星蓝雨几秒前
C++的设计与演进大纲(如何从C语言一步步成长为C++)
c语言·开发语言·c++·c++历史·c++演进
程序员阿鹏6 分钟前
为什么MySQL InnoDB选择B+树?
数据结构·数据库·b树·sql·mysql·算法·缓存
Evand J15 分钟前
【MATLAB例程,图像降噪滤波9】自适应维纳滑动窗口滤波(Wiener)图像降噪、方法对比,有中文注释
开发语言·图像处理·计算机视觉·matlab·滑动窗口·滤波·降噪
AI 思录27 分钟前
Prompt 事故档案(八):日常表达被标为“待校准”,AI 的爹味语法从哪里来
大数据·人工智能·算法·prompt·用户体验·ai合规
月光船幽幽33 分钟前
跨范式映射的稳定接口设计
人工智能·python·算法
杜大哥37 分钟前
python程序:如何查看电脑【电池电量的剩余百分比】 和 【是否插入连接着充电器】?
开发语言·python
wuyk55538 分钟前
Python网络爬虫入门到实战 第01章:爬虫到底是什么?原理、流程、合法性、风险全解析(零基础必看)
开发语言·爬虫·python
信誓旦旦的程序猿1 小时前
【量化系统从零构建 #04】存储设计:选型·建库·交易日历
java·人工智能·python·股票数据api·股票数据·股票数据api接口·股票api数据接口
yurenpai(27届找实习中)1 小时前
Java 10 的 var 为什么不能随便用?从订单汇总看懂类型推断与泛型陷阱
java·开发语言·java18
shmily麻瓜小菜鸡1 小时前
JS/TS 易踩坑知识点 — 模块化与工程化类
开发语言·javascript·ecmascript