PAT B1026 程序运行时间

题目描述


分析:

本题考察时间转换。我们先看时钟打点数 C2 - C1可以得到总的打点数,而每100打点数,可以换算为1秒,又题目要求不足1秒的时间要四舍五入。我们先举例:

  1. C2 - C1 = 110,可转换为 1 秒余10打点数,四舍五入为1秒;
  2. C2 - C1 = 151,可转为为 1 秒余51打点数,四舍五入为2秒;
  3. C2 - C1 = 2310,可转换为23秒余10打点数,四舍五入为23秒。

综上,在打点树到秒数的转换中最重要的是打点数的最后两位,若其大于等于50,在换算秒数的时候就要加1;否则,直接除以常数 CLK_TCK 即可。
另外,一个常用的时间换算关系:
若给出 n 秒,又要以xx时:xx分:xx秒的形式表示。则有 xx时 = n / 3600,xx分 = n % 3600 / 60,xx秒 = n % 60。


代码(C++)

#include<iostream>

using namespace std;

const int CLK = 100;

int main()
{
    int c1, c2;
    cin >> c1 >> c2;
    int ans = c2 - c1;
    if (ans % 100 >= 50) ans = ans / 100 + 1;
    else ans = ans / 100;
    
    printf("%02d:%02d:%02d\n", ans / 3600, ans % 3600 / 60, ans % 60);
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值