時計の時針と分針の鋭角を求める問題を解いてみました。
hourに0から23、minuteに0から59を設定する。
正直23:59分を正確に解答できるか怪しい
if a>360:a=a-360のところはa=a%360のほうがいいかも。
if int(a)==a:a=int(a)は整数だったら小数点は表示しないという仕様にしたがって。
これを5割ぐらいの人がわかるのではないかという感じの説明を目指してみます。
まず1、2行目は追加で使う道具の記述なんですが今回使ってないので削除。
いや難しい。いいとこ1割かもしれません。
鋭角、鈍角、絶対値とか一般の人がどこまで覚えているのかも不明です。
語れば語るほど誤字脱字等も含めてハマる気がしています。
個人的にもこういうプログラムを何度も見たりまねて打ったりして少しづつこれはこういうものなのかと理解していった末なので。
hourに0から23、minuteに0から59を設定する。
正直23:59分を正確に解答できるか怪しい
if a>360:a=a-360のところはa=a%360のほうがいいかも。
if int(a)==a:a=int(a)は整数だったら小数点は表示しないという仕様にしたがって。
import sys import math hour = int(input()) minute = int(input()) a=abs(hour*30-minute*6+minute*0.5) if a>360:a=a-360 if a>180:a=360-a if int(a)==a:a=int(a) print(a)
これを5割ぐらいの人がわかるのではないかという感じの説明を目指してみます。
まず1、2行目は追加で使う道具の記述なんですが今回使ってないので削除。
hour = int(input()) #hourという名の変数にinput()で入力したものをint()で数値に変換します。hourは時 minute = int(input()) #minuteという名の変数に(以下同文)minuteは分 a=abs(hour*30-minute*6+minute*0.5) #aという変数に代入します。 時刻から算出した時針の角度"hour*30+minute*0.5"と分針の角度"minute*6"の差の絶対値(abs)で正の値に変換。 if a>360:a=a-360 #aが360度を越えていたら360度引きます。(23時だと690度になるため) if a>180:a=360-a #aが180度を越えて鈍角なら、360度から引いて鋭角を求めます。 if int(a)==a:a=int(a) #求めた角度を整数化したものが求めた角度と同じなら(少数点以下がない時)整数化する。 #Pythonは3を1.5で割ると2ではなく2.0になるため。2==2.0となる。 print(a) #変数aを表示する。他の言語は数値を文字列に変換しないといけないものが多いけどPythonはそのままでも表示する。
いや難しい。いいとこ1割かもしれません。
鋭角、鈍角、絶対値とか一般の人がどこまで覚えているのかも不明です。
語れば語るほど誤字脱字等も含めてハマる気がしています。
個人的にもこういうプログラムを何度も見たりまねて打ったりして少しづつこれはこういうものなのかと理解していった末なので。