天天看點

【Go語言入門100題】067 洛希極限 (10 分) Go語言 | Golang

L1-067 洛希極限 (10 分)Go語言|Golang

洛希極限(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.16,如果是流體就用*2.445。

代碼如下:

package main

import "fmt"

func main() {
    var a,b,c float64
    _,_=fmt.Scan(&a,&b,&c)
    if int(b) == 0 {
        tmp := a*2.455
        if tmp > c {
            fmt.Printf("%.2f T_T",tmp)
        }else{
            fmt.Printf("%.2f ^_^",tmp)
        }
    }else{
        tmp := a*1.26
        if tmp > c {
            fmt.Printf("%.2f T_T",tmp)
        }else{
            fmt.Printf("%.2f ^_^",tmp)
        }
    }
}