1600: BCD时钟

时间限制: 1 Sec  内存限制: 128 MB
提交: 1038  解决: 156
[提交][状态][讨论版]

题目描述

BCD码是指用四位二进制数来表示十进制数中的0~9这十个数字的编码形式,常见的是8421码表如下:

十进制  二进制

0 0000
1 0001
2 0010
3 0011
4 0100
5 0101
6 0110
7 0111
8 1000
9 1001
 
 
现在我们用BCD码表示一个时钟.时钟由13个LED灯组成(见图), 灯1和2表示小时的第一个数字,灯3-6表示小时的第二个数字.灯7-9表示分钟的第一个数字,灯10-13表示分钟的第二个数字.注意,小时的第一个数字和分钟的第一个数字并没有用足四位二进制是因为已经足够表达相关信息了,详见样例.
时钟是24小时制的,规定从00:00到24:00, 24:00和0:00均为正确时刻.
例如: 灯1,3,7,10和12亮表示时刻11:15, 因为灯1亮表示小时的第一个数字是1,灯3亮表示小时的第二个数字也是1.灯7亮表示分钟的第一个数字是1,灯10和12亮表示分钟的第二个数字是1+4=5.
 
我们问题是,给定时钟的BCD时刻, 求出对应的十进制时刻.

输入

由多组测试数据组成.每组数据一行,包括一个0和1组成的,长度为13的字符串,从左至右对应灯1-13. 1表示灯亮,0表示灯熄灭.

输出

每组测试数据输出一行.如果数据有误,输出"Error", 否则输出对应时刻.见样例.

样例输入

0111001011001
1000000000000
1000000000010
0100001000100
0010000010010
1100011000011
1111111111111
0011000100100
1010000000110
1010000000100

样例输出

23:59
10:00
10:04
20:12
01:44
Error
Error
03:22
11:06
11:02
直接按照题意模拟就行了,要注意的是24:00是合法的,但是24:01是不合法的,因为这个WA了一次
#include<iostream>
#include<cstring>
#include<cstdio> using namespace std;
#define lx( c ) ((c)-('0'))
char ch[]; void tran(int &a, int &b, int &c, int &d){
a = lx(ch[]) + lx(ch[])*;
b = lx(ch[]) + lx(ch[])* + lx(ch[])* + lx(ch[])*;
c = lx(ch[]) + lx(ch[])* + lx(ch[])*;
d = lx(ch[]) + lx(ch[])* + lx(ch[])* + lx(ch[])*;
} void Solve_question(){
int a, b, c, d;
tran(a, b, c, d);
bool flag = true;
if(a* + b > || c * + d > ) flag = false;
if(a > || b > || c > || d > ) flag = false;
if(a* + b == && c* + d > ) flag = false;
if( !flag ) printf("Error\n");
else printf("%d%d:%d%d\n", a, b, c, d);
}
int main(){
while(scanf("%s", ch) == ){
int len = strlen(ch);
if(len != ) { printf("Error\n"); continue; }
Solve_question();
}
}

HNUSTOJ-1600 BCD时钟的更多相关文章

  1. RTC实时时钟

    作者:宋老师,华清远见嵌入式学院讲师. 1.1 RTC介绍 在 一个嵌入式系统中,通常采用RTC 来提供可靠的系统时间,包括时分秒和年月日等,而且要求在系统处于关机状态下它也能够正常工作(通常采用后备 ...

  2. 【ARM】2440裸机系列-RTC数字时钟

    功能 裸机程序,实现LCD显示数字时钟 主要代码   1)背景绘制 void Brush_ U32 c) { int x,y ; for ( y = 0 ; y < LCD_HEIGHT ; y ...

  3. S3C2440的RTC解析

    位二-十进制交换码(BCD)值数据给CPU.这些数据包括年.月.日.星期.时.分和秒的时间信息.RTC单元工作在外部32.768kHz晶振并且可以执行闹钟功能 实时时钟模块保存的数据是DCD码形式. ...

  4. VGA调试心得

    以前自己调试过视频信号,无非就时钟加行场同步加数据线,如果视频信号出问题,第一看现象,第二测频率,反正出问题不是消隐信号出问题,就是时钟频率出问题.通过这种方式也调试成功过几个显示屏,然后就以为自己对 ...

  5. 13. 从0学ARM-Cortex-A9 RTC裸机程序编写

    一.RTC RTC(Real-Time Clock) 实时时钟. RTC是集成电路,通常称为时钟芯片.在一个嵌入式系统中,通常采用RTC来提供可靠的系统时间,包括时分秒和年月日等,而且要求在系统处于关 ...

  6. Maxim实时时钟芯片设计指南5413-二进制编码十进制(BCD)格式实时时钟中的状态机逻辑

    网上DS12C887的文章涉及到时间的存储格式使用的都是二进制代码,究竟使用BCD码该如何操作?正好美信官网上有一篇文章.美信官网不稳定,先贴到这里,有时间再翻译. 原文链接 State Machin ...

  7. ASM:《X86汇编语言-从实模式到保护模式》第9章:实模式下中断机制和实时时钟

    中断是处理器一个非常重要的工作机制.第9章是讲中断在实模式下如何工作,第17章是讲中断在保护模式下如何工作. ★PART1:外部硬件中断 外部硬件中断是通过两个信号线引入处理器内部的,这两条线分别叫N ...

  8. S3C2440上RTC时钟驱动开发实例讲解(转载)

    嵌入式Linux之我行,主要讲述和总结了本人在学习嵌入式linux中的每个步骤.一为总结经验,二希望能给想入门嵌入式Linux的朋友提供方便.如有错误之处,谢请指正. 共享资源,欢迎转载:http:/ ...

  9. DS1337 时钟芯片在 C8051F 上的实现

    一.DS1337介绍 DS1337串行实时时钟芯片是一种低功耗.全部采用BCD码的时钟日历芯片,它带有两个可编程的定时闹钟和一个可编程的方波输出.其地址和数据可通过I2C总线串行传输,能提供秒.分.时 ...

随机推荐

  1. Arduino-位操作

    读取指定位的数据 int x=bitRead(0x81,7);    //0x81从右向左依次为第0位到第15位,第2个参数为第7位的1复制给x,使x=1 把数据写到指定位 int x=13; //x ...

  2. JS高阶函数--------map、reduce、filter

    一.filter filter用于对数组进行过滤.它创建一个新数组,新数组中的元素是通过检查指定数组中符合条件的所有元素. 注意: filter() 不会对空数组进行检测. 注意: filter() ...

  3. Bugku 杂项 眼见非实(ISCCCTF)

    眼见非实(ISCCCTF) 下载文件后,用winhex打开 发现文件头为50 4B 03 04说明是一个压缩文件,还可以看到其中有.docx文件 更改文件后缀为 .zip 解压后发现 这个文件用wor ...

  4. AC自动机及其模板

    模板 #include<queue> #include<stdio.h> #include<string.h> using namespace std; ; ; ; ...

  5. [IOI2008] Fish 鱼

    https://www.luogu.org/recordnew/lists?uid=56840 题解 首先可以发现我们对于每种颜色的鱼,长一点的能够覆盖的方案已定完全包含短一点的方案. 所以我们可以只 ...

  6. 170815-关于Filter的知识点

    Filter简介:         Filter翻译为中文是过滤器的意思.         Filter是JavaWeb的三大web组件之一:Servlet.Filter.Listener       ...

  7. 微信小程序之登录用户不是该小程序的开发者

    当uniapp项目转为小程序项目的时候,预览会显示“您不是登录用户...”,所以没有办法发布,这个时候打开“project.config.json”设置一下appid,与你公众号appid一致就可以

  8. Presenter 层

    后是 Presenter 层,它是处理业务逻辑和业务数据的,所以必须持有 Model 的引用,同时要将处理完的数据交给 View 层用于显示,也必须持有 View 的引用,那么,一开始我们就要把这两层 ...

  9. Redis实现存取数据+数据存取

    添加依赖: <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId> ...

  10. Web网站安全

    一.防SQL注入 SQL注入,就是在web提交表单,请求参数的字符串中通过注入SQL命令,提交给服务器,从而让服务器执行注入的恶意的SQL命令的行为,是发生在开发程序的数据库层的安全漏洞. SQl注入 ...