一、题目
二、代码
#include <iostream>
#include <algorithm>
using namespace std;
int main() {
long long c1, c2;
cin >> c1 >> c2;
int clk_tck = 100;
long long c = c2 - c1;
int time = c / clk_tck;//单位为s;
if(c % clk_tck >= 50)
{
time = time + 1;//判断不足一秒,余数为0-99;
}
//45779
int ss = time % 60;
int hh = time / 3600;
int m = time - ss -hh*3600;
int mm = m / 60;
printf("%02d:%02d:%02d", hh,mm,ss);
}
三、分析
1.c1和c2的取值范围为【0,10^7】,int可能会超出范围,但是我 用int和long long提交都正确。
(C99标准规定int类型的取值范围必须至少为-32767到32767,无符号int(unsigned int)的取值范围至少为0到65535。)
2.四舍五入,直接取余得到的数字范围为0-99,判断是否加一的条件是>=50 。
3.输出为两位数字
4.核心是计算时分秒,初始得到的数字是秒为单位。