寝癖頭の解法

学習中の覚え書きを投稿、更新していきます。

Aizu Online Judge in C, Python, Java #ITP1_1_D 時間の変換と表示

秒単位の時間を変換して、デジタル式の表示を求めるプログラムです。

・問題
 秒単位の時間 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