题意:

给出一个时间,hh:mm:ss,hh代表小时,mm代表分钟,ss代表秒,要我们输出时针和分针、时针和秒针、分针和秒针之间的角度,输出两个针之间<=180那个度数,如果不是整数,要用分数表示。

思路:

给出时间后,我们可以统计总共走了多少秒,从而计算角度,这道题比赛的时候是队友打的,直接上代码吧。

注意,在代码中,尽量用乘法代替除法,我们因为这个WA了一次。

代码:

#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>
using namespace std;int main() {int T;int hh,mm,ss;scanf("%d",&T);while(T--) {scanf("%d:%d:%d",&hh, &mm, &ss);int sum = hh * 60 * 60 + mm * 60 + ss;sum %= (12 * 3600);int h = sum % (12 * 60 * 60);int m = sum % (60 * 60);int x = h - m * 12;if(x < 0) x = -x;int y = 120;int z = __gcd(x,y);x/=z;y/=z;if(x > y * 180) {int xx = 360 * y - x;int yy = y;int zz = __gcd(xx, yy);xx /= zz;yy /= zz;x = xx;y = yy;}if(x == 0 || x % y == 0) {printf("%d ", x/ y);} else {printf("%d/%d ",x,y);}h = sum % (12 * 60 * 60);m = sum % 60;x = h - m * 12 * 60;if(x < 0) x = -x;y = 120;z = __gcd(x,y);x/=z;y/=z;if(x > y * 180) {int xx = 360 * y - x;int yy = y;int zz = __gcd(xx, yy);xx /= zz;yy /= zz;x = xx;y = yy;}if(x == 0 || x % y == 0) {printf("%d ", x/ y);} else {printf("%d/%d ",x,y);}h = sum % (60 * 60);m = sum % 60;x = h - m *  60;if(x < 0) x = -x;y = 10;z = __gcd(x,y);x/=z;y/=z;if(x > y * 180) {int xx = 360 * y - x;int yy = y;int zz = __gcd(xx, yy);xx /= zz;yy /= zz;x = xx;y = yy;}if(x == 0 || x % y == 0) {printf("%d ", x/ y);} else {printf("%d/%d ",x,y);}puts("");}
}

hdu5387(模拟)相关推荐

  1. springboot实现SSE服务端主动向客户端推送数据,java服务端向客户端推送数据,kotlin模拟客户端向服务端推送数据

    SSE服务端推送 服务器向浏览器推送信息,除了 WebSocket,还有一种方法:Server-Sent Events(以下简称 SSE).本文介绍它的用法. 在很多业务场景中,会涉及到服务端向客户端 ...

  2. curl模拟post请求

    另外可尝试 postman工具 或者用request 直接请求 CURL 发送POST请求curl -header "Content-Type: application/json" ...

  3. flask_模拟请求post,get

    #coding:utf-8 import requestsres = requests.post(url="http://192.168.135.105:8888/",data={ ...

  4. 模拟内存计算如何解决边缘人工智能推理的功耗挑战

    模拟内存计算如何解决边缘人工智能推理的功耗挑战 How analog in-memory computing can solve power challenges of edge AI inferen ...

  5. 为放大器模拟输入模块提供可靠的输入过电压保护

    为放大器模拟输入模块提供可靠的输入过电压保护 Signal Chain Basics #159: Provide robust input overvoltage protection for amp ...

  6. 模拟Servlet本质

    JavaWeb系列教程,持续更新 JavaWeb-Servlet 模拟Servlet本质 使用IDEA开发Servlet程序 Servlet对象的生命周期 适配器(GenericServlet)改造S ...

  7. 2021年大数据Flink(四十):​​​​​​​Flink模拟双十一实时大屏统计

    目录 Flink模拟双十一实时大屏统计 需求 数据 编码步骤: 1.env 2.source 3.transformation 4.使用上面聚合的结果,实现业务需求: 5.execute 参考代码 实 ...

  8. Python:模拟登录、点击和执行 JavaScript 语句案例

    案例一:网站模拟登录 # douban.pyfrom selenium import webdriver from selenium.webdriver.common.keys import Keys ...

  9. 杨老师课堂_Java核心技术下之控制台模拟文件管理器案例

    背景需求介绍: 编写一个模拟文件管理器的程序,实现控制台对文件和文件夹的管理操作. 要求在此程序中: 当用户输入指令 1 时,代表"指定关键字检索文件",此时需要用户输入检索的目录 ...

最新文章

  1. 【HDU】1251统计难题 (字典树:二维数组,结构体数组,链表,map)
  2. 申请加入 “WebGIS” 团队
  3. c语言如何设置c99标准,新的C语言: C99标准介绍
  4. jquery 监听td点击事件_安卓开发监听点击事件的一种方法
  5. VC/MFC中的CComboBox控件使用详解
  6. 艰难的时候总会过去,只要你能坚持下来~
  7. Alibaba秋招前端测试题
  8. 联想Y9000P安装Ubuntu18.04+PX4+mavros+QGC
  9. 蓝牙音乐之AVRCP常用指令介绍
  10. UCOSII实时操作系统启动原理和理解
  11. WordPress 3.3 –“ Sonny”发布
  12. MATLAB高等光学仿真——反射率,透射率变化
  13. python中关于Process finished with exit code -1073740791 (0xC0000409)的解决办法
  14. Unity 识别左右手的方式总结
  15. numpy、pandas操作
  16. 千层套路“千层饼”,论面试中的套路与反套路
  17. c语言16进制直接文本输出,c语言问题求助:将16进制文本转10进制并输出文本
  18. 数项级数——(三)一般项级数
  19. 回溯法----旅行售货员问题
  20. lisp程序绘制大树_LISP – 树

热门文章

  1. 十四、“沥沥雨丝如落泪,麻麻密密总为愁。”(2021.5.2)
  2. 北理工 管理系统计算机仿真作业,20秋北理工《CADCAM原理与应用》--模拟3-答案 更…...
  3. Python5:Script
  4. matlab 读取含有文本的txt
  5. 小波的秘密10_小波包的数学支撑
  6. 结合泛型与模板的STL.NET
  7. 还原数据库出现“因为数据库正在使用,所以无法获得对数据库的独占访问权”解决方法-
  8. cmake的使用--变量使用超详细详解
  9. lseek函数实现对打开文件的定位
  10. 嵌入式设备串口命名的地方