2017-06-20 8 views
0

アナログ時計で時針と深夜の間の度合いの大きさを計算しようとしているが、 Python。これもSnakify Pythonの問題解決の課題の1つです。私は最後の対応から様々な質問を解決しましたが、かなり合理的に「非常に難しい」とマークされています。だから、これは私のコードです...誰かが私が間違っていることを教えてもらえますか?アナログ時計で時針の大きさの大きさを計算しようとすると苦労する

H = int(input()) 
M = int(input()) 
S = int(input()) 

hours = H * 3600 
minutes = M * 60 
seconds = S 
time = hours + minutes + seconds 
calc = time/86400 
deg = calc * 3.6 
print(deg) 

ははるかに高く評価:なしフロート番号はそう...この質問に含まれていませんが、今回は、問題はおそらく、アルゴリズムでいる神に感謝。

+0

あなたが期待するものを教えなければならないでしょう、そして、何があなたが期待するものとは異なる/間違って起こっています。 – Cristina

答えて

0

3.6はどこから来たのですか?それは360(円の全角度)にする必要があります。また、アナログ時計が12時間で入力が24時間システムを使用している場合は、Hの代わりにH % 12を使用する必要があります。

1

timeを正しく計算しました。

time_in_hours = time/3600 

結果がfloatですが、あなたは本当にそれを心配する必要はありません。
のは、最初の時間に変換してみましょう。

time_in_hoursは少ないか、12を超えることができます(と時間が飛んで維持しながら、それは24、36または何でも....よりも大きくすることができる)
私たちの時計は12時間を表示するように、我々は残りの部分にのみ関心があります私たちが可能な限り私たちの時間から多くの完全な12時間を取り除いた後。これはモジュロ演算子、%で計算され、12で割った余りである:

remainder = time_in_hours % 12 

今は度でこれを変換することができます。 12時間は360度に対応しているので、1時間あたり360/12 = 30度です。

だから角度は、単純です:

angle = remainder * 30 
関連する問題