栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

poj 2815 Context

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

poj 2815 Context

#include <stdio.h>double degree[86400];inline double abs(double a) {    if (a < 0) return -a;    return a;}void init() {    double hourHandPos, minuteHandPos, differ;    for (int i = 0; i < 24; i++) {        for (int j = 0; j < 60; j++) { for (int k = 0; k < 60; k++) {     hourHandPos = (i % 12) * 30 + (1.0 * j * 60 + k) / 120;     minuteHandPos = j * 6 + 1.0 * k / 10;     differ = hourHandPos > minuteHandPos ? 360 - hourHandPos + minuteHandPos : minuteHandPos - hourHandPos;     degree[i * 3600 + j * 60 + k] = differ; }        }    }    degree[86401] = 0;}double ERR = 0.08;inline bool isSame(double d1, double d2) {    if (d1 == 0) {        return abs(d1 - d2) < ERR || abs(360.0 - d2) < ERR;    }    return abs(d1 - d2) < ERR;}int main() {    init();    while (1) {        int h, m, s;        double d;        scanf("%lf %d:%d:%d", &d, &h, &m, &s);        if (d == -1) break;        int startPos = h * 3600 + m * 60 + s;        bool found = false;        int pos;        for (pos = startPos; pos < 86400; ) { if (isSame(d, degree[pos])) break; pos++; if (pos == 86400) pos = 0;        }        printf("%02d:%02d:%02dn", pos / 3600, (pos % 3600) / 60, pos % 3600 % 60);    }    return 0;}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/379177.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号