hdu多校训练赛第一场 1011 Time Zone

本文介绍了一个简单的时区转换算法实现,通过输入北京时间和目标时区,可以快速计算出对应的目标时区时间。该算法适用于广泛的时区转换需求,并提供了一个清晰易懂的C++代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1011 Time Zone

题 意:给你北京时间,让你求其他时区的时间。
输入范围:
1<=t<=1e6
0<=x,x.y<=14

输入样例:

3
11 11 UTC+8
11 12 UTC+9
11 23 UTC+0

输出样例:

11:11
12:12
03:23

收 获:至少知道了时区的转换
思 路:开始的时候被输入数据刚给吓到了,不是只有东12和西12吗?其实不用管。还是一样的算法。之前写的太复杂了,看了杜教的代码。简洁。

#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
#define N 1000005
using namespace std;
typedef long long ll;
const int maxn = 1e3+5;
int h,m;
char s[100];
double d;
int main() {
    int t;
    scanf("%d",&t);
    while(t--){
        scanf("%d %d %s",&h,&m,s);
        h = h*60+m;
        sscanf(s+4,"%lf",&d);
        int flag = s[3] == '-'?-1:1; //有点学的僵化了  
        int c = int(d*10+0.1);
        m = flag*c*6 - 8*60;
        h += m;
        h%=24*60;
        if(h<0)h+=24*60;
        printf("%02d:%02d\n",h/60,h%60);
    }
    return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值