秒単位の時間を変換して、デジタル式の表示を求めるプログラムです。
・問題
秒単位の時間 S が与えられるので、h : m : sの形式へ変換して出力してください。
ここで、h は時間、m は 60 未満の分、s は 60 未満の秒とします。
・入力される値
S が1行に与えられます。
・期待する出力
h、m、s を :(コロン)区切りで1行に出力してください。
数値が1桁の場合、0 を付けて2桁表示をする必要はありません。
・条件
0≤S<86400
僕が作成、提出したコードは、以下のとおりです。
/* ITP1_1_D : Watch http://judge.u-aizu.ac.jp/onlinejudge/ C言語による時間の変換と表示 https://neguse-atama.hatenablog.com */ #include <stdio.h> int main(void){ int h,m,s; scanf("%d",&s); h=s/3600; m=(s%3600)/60; s=s%60; printf("%d:%d:%d\n",h,m,s); }
Pythonのバージョンは、3.x に対応します。
# ITP1_1_D : Watch # http://judge.u-aizu.ac.jp/onlinejudge/ # Pythonによる時間の変換と表示 # https://neguse-atama.hatenablog.com s = int(input()) h = s // 3600 m = s % 3600 // 60 s = s % 60 print(f"{h}:{m}:{s}")
/* ITP1_1_D : Watch http://judge.u-aizu.ac.jp/onlinejudge/ Javaによる時間の変換と表示 https://neguse-atama.hatenablog.com */ import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc=new Scanner(System.in); int S=sc.nextInt(); int h=S/3600; int m=(S%3600)/60; int s=S%60; System.out.println(h + ":" + m + ":" + s); } }
設問の出典は、プログラミング問題のオンライン採点システム「Aizu Online Judge(AOJ)」です。
http://judge.u-aizu.ac.jp/onlinejudge/
ITP1_1_D : Watch