博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HNUSTOJ-1600 BCD时钟
阅读量:6607 次
发布时间:2019-06-24

本文共 1795 字,大约阅读时间需要 5 分钟。

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", 否则输出对应时刻.见样例.

样例输入

0111001011001100000000000010000000000100100001000100001000001001011000110000111111111111111001100010010010100000001101010000000100

样例输出

23:5910:0010:0420:1201:44ErrorError03:2211:0611:02 直接按照题意模拟就行了,要注意的是24:00是合法的,但是24:01是不合法的,因为这个WA了一次
#include
#include
#include
using namespace std;#define lx( c ) ((c)-('0'))char ch[25]; void tran(int &a, int &b, int &c, int &d){ a = lx(ch[0]) + lx(ch[1])*2; b = lx(ch[2]) + lx(ch[3])*2 + lx(ch[4])*4 + lx(ch[5])*8; c = lx(ch[6]) + lx(ch[7])*2 + lx(ch[8])*4; d = lx(ch[9]) + lx(ch[10])*2 + lx(ch[11])*4 + lx(ch[12])*8;} void Solve_question(){ int a, b, c, d; tran(a, b, c, d); bool flag = true; if(a*10 + b > 24 || c * 10 + d > 59) flag = false; if(a > 3 || b > 9 || c > 5 || d > 9) flag = false; if(a*10 + b == 24 && c*10 + d > 0) flag = false; if( !flag ) printf("Error\n"); else printf("%d%d:%d%d\n", a, b, c, d);}int main(){ while(scanf("%s", ch) == 1){ int len = strlen(ch); if(len != 13) { printf("Error\n"); continue; } Solve_question(); }}

 

转载于:https://www.cnblogs.com/Pretty9/p/7406592.html

你可能感兴趣的文章
如何在Oracle中复制表结构和表数据
查看>>
[河南省ACM省赛-第四届] 序号互换 (nyoj 303)
查看>>
3 Oracle 32位客户端安装及arcgis连接
查看>>
[MFC] MFC编译程序,缺少MFC动态链接库的解决
查看>>
Android进阶2之APK方式换肤
查看>>
Sticker.js – 帮助你在网站中加入贴纸效果
查看>>
命名参数
查看>>
windows服务与计划任务
查看>>
重新想象 Windows 8 Store Apps (8) - 控件之 WebView
查看>>
JAVA中的File类
查看>>
java控制台输入
查看>>
欧拉路与欧拉回路的性质
查看>>
ESET Smart Security 免费60天
查看>>
初识MVCSharp
查看>>
90后黄金程序员,你不是码农,请自信
查看>>
Android四大基本组件介绍与生命周期
查看>>
关于域名解析
查看>>
Android之BroadcastReceiver1
查看>>
嵌入式Linux开发
查看>>
ActivityGroup相关--getLocalActivityManager()
查看>>