时间转换
问题描述
读取一个整数值,它是工厂中某个事件的持续时间(以秒为单位),请你将其转换为小时:分钟:秒来表示。
输入格式
输入一个整数N。
输出格式
输出转换后的时间表示,格式为“hours:minutes:seconds”。
数据范围
输入样例:
556
输出样例:
0:9:16
问题分析
首先要知道秒与小时、分钟的换算
1h=60min=3600s
那么,在判断小时的时候,首先考虑有多少个3600,判断分钟时候,考虑有多少个60,剩下的就是秒
代码实现
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
int main(){
//输出转换后的时间表示,格式为“hours:minutes:seconds”
long t;
int h,m;
cin>>t;
h=t/3600;//小时数
t=t%3600;
m=t/60;//分钟数
t=t%60;//秒数
cout<<h<<":"<<m<<":"<<t;
return 0;
}
运行结果
4134
1:8:54
--------------------------------
总结
这个问题与
钞票问题
类似,同样是将一个数逐步分解,从最大的可用数找起,直至最小。