zoukankan      html  css  js  c++  java
  • YJC tricks time HDU 5276

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5276

    题意:现给定一个扩大了12000倍的时针与分针转过的度数的差,问你符合要求的时间点。(秒针误差在10秒以内, 时间点从 00:00:00 - 11:59:59)

    ///

    时针:

        每小时转30°( 12/360 = 1/x)

        每分钟转1/2°(12*60 / 360 = 1/x)

        每秒针转1/120°(12*60*60 / 360 = 1/x)

    分针:  

        每分钟转6°(60 / 360 = 1/x)

        每秒针转1/10°(60*60 / 360 = 1/x)

    h:m:s;

    时针转的角度为:(h*3600 + m*60 + s)* 1/120 * 12000

    分针转的角度为:(m*60 + s)* 1/10 * 12000

    转一圈的角度为: Round = 360 * 12000

    代码如下:

    #include <iostream>
    #include <cstdlib>
    #include <cstdio>
    #include <algorithm>
    #include <vector>
    #include <queue>
    #include <cmath>
    #include <stack>
    #include <cstring>
    using namespace std;
    #define INF 0xfffffff
    #define maxn 10000
    int Round=360*12000;
    
    
    int main()
    {
        int n;
    
        while(scanf("%d", &n)!=EOF)
        {
            for(int i=0; i<12; i++)
            {
                for(int j=0; j<60; j++)
                {
                    for(int k=0; k<60; k+=10)
                    {
                        int p = (i*3600+j*60+k)*100;
                        int q = (j*60+k)*1200;
                        int a=abs(p-q);
    
                        ///若当时针与分针相差的角度大于180*12000,则让其等于较小的那个度数。
                        if(a>Round/2) a = Round - a;
    
                        if(a==n)
                            printf("%02d:%02d:%02d
    ", i, j, k);
                    }
                }
            }
        }
        return 0;
    }
    View Code

        

  • 相关阅读:
    Redis主从、事务、哨兵、消息、代理分片
    Java中反射
    java操作文件流对象
    Java中线程和线程池
    杂记
    Hadoop伪分布式环境快速搭建
    Git 基础
    React Context(一):隐式传递数据
    搭建React项目(一):在网页中使用
    jQuery MD5 加密
  • 原文地址:https://www.cnblogs.com/daydayupacm/p/5675742.html
Copyright © 2011-2022 走看看