试题 基础练习 时间转换
资源限制
时间限制:1.0s 内存限制:512.0MB
问题描述
给定一个以秒为单位的时间t,要求用“[H]:[M]:[S]”的格式来表示这个时间。[H]表示时间,[M]表示分钟,而[S]表示秒,它们都是整数且没有前导的“0”。例如,若t=0,则应输出是“0:0:0”;若t=3661,则输出“1:1:1”。
输入格式
输入只有一行,是一个整数t(0<=t<=86399)。
输出格式
输出只有一行,是以“[H]:[M]:[S]”的格式所表示的时间,不包括引号。
样例输入
0
样例输出
0:0:0
样例输入
5436
样例输出
1:30:36
题解一:这道题按照时间取余,1h=60m=60*60s,每位对应取余就可以了
#include<stdio.h>
int main(){
int H,M,S,n;
scanf("%d",&n);
H=(int)n%(60*60*60)/(60*60);
M=(int)n%(60*60)/60;
S=(int)n%60;
printf("%d:%d:%d",H,M,S);
return 0;
}
题解二同样的思路,不同的算法
#include<stdio.h>
int main(){
int t;
scanf("%d",&t);
int H,M,S;
H=t/3600;
M=(t%3600)/60;
S=(t%3600)%60;
printf("%d:%d:%d",H,M,S);
return 0;
}