L1-067 洛希极限(C++以及仓颉版)
洛希极限(Roche limit)是一个天体自身的引力与第二个天体造成的潮汐力相等时的距离。当两个天体的距离少于洛希极限,天体就会倾向碎散,继而成为第二个天体的环。它以首位计算这个极限的人爱德华·洛希命名。(摘自百度百科)大天体密度与小天体的密度的比值开 3 次方后,再乘以大天体的半径以及一个倍数(流体对应的倍数是 2.455,刚体对应的倍数是 1.26),就是洛希极限的值。
原题链接:L1-067 洛希极限 - 团体程序设计天梯赛-练习集
洛希极限(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,数字一乘上1.26,如果是0,数字一乘上2.455,输出乘积但是要保留二位小数,将这个乘积与数字三比较,如果大于就输出T_T,反之输出^_^,以下是我的题解:
C++:
#include<bits/stdc++.h>
using namespace std;
int main(){
double a,c;
int b;
cin>>a>>b>>c;
double result;
if(b==0){
result=a*2.455;
}
else{
result=a*1.26;
}
cout<<fixed<<setprecision(2)<<result<<" ";
if(result>c){
cout<<"T_T"<<endl;
}
else{
cout<<"^_^"<<endl;
}
return 0;
}
仓颉语言版:
package somethinglike
import std.convert//这个包可以用于数据类型转换和保留二位小数
main(){
let a=readln()//输入默认读取为字符串
let b=a.split(" ")//以空格为分隔符将字符串拆解成数组
let num1=Float64.parse(b[0])//将字符串数据类型转为Float类型,64是数据精度
let num3=Float64.parse(b[2])
let result:Float64
if(b[1]=="0"){
result=num1*2.455
}
else{
result=num1*1.26
}
print("${result.format('.2')}")//保留二位小数
if(result>num3){
println(" T_T")
}
else{
println(" ^_^")
}
}
运行结果如下

更多推荐


所有评论(0)