zoukankan      html  css  js  c++  java
  • ACM_ZHANGZHANG喜欢手表

    ZHANGZHANG喜欢手表

    Time Limit: 2000/1000ms (Java/Others)

    Problem Description:

    ZHANGZHANG刚过生日,收到了好朋友NENGNENG挖宝藏挖到的一个手表,可喜欢了。
     
    ZHANGZHANG发现,这个手表跟电脑主机后面的时钟有着极大的相似性,于是ZHANGZHANG决定对它进行深入研究。
    通过收集资料ZHANGZHANG发现,这里每个数字的显示是由8个LED灯来决定的,LED灯的亮与暗决定了最终显示的数字。因为一个数字有显示一共有8个LED灯,分别给它们标上abcdefgh,就得到下面这图。 
    聪明的ZHANGZHANG一下子就想到了可以用一个8位的二进制来表示一个数字,如数字0,那么就可以把abcdef灯置为1,其他置为0,于是得到一个数字 00111111 (即hgfedcba)。其他数字如下图 
    那么,手表上有四个数字,肯定就可以用一个32位的二进制整数来表示,那么给你一个时间,输出对应的整数。

    Input:

    输入有多组数据数据,每组数据一行,输入一个时间,格式为HH:mm。

    Output:

    对于每组数据,输出一个32位整数(输出十进制)。

    Sample Input:

    00:00
    01:23
    23:59

    Sample Output:

    1061109567
    1057381199
    1531932015
    Hints:
    样例2中,对应的32位二进制为 00111111000001100101101101001111,它的十进制是1057381199。
    解题思路:注意:0~9这10个数字中h灯的状态始终为0。做法:将数字对应的字符串(显示状态)相加,再从右往左求32位二进制的10进制即可,水过。
    AC代码:
     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 int main(){
     4     string hour,obj,str[]={"00111111","00000110","01011011","01001111",
     5     "01100110","01101101","01111101","00000111","01111111","01101111"};
     6     int ans,base;
     7     while(cin>>hour){
     8         obj=str[hour[0]-'0']+str[hour[1]-'0']+str[hour[3]-'0']+str[hour[4]-'0'];
     9         ans=0;base=1;
    10         for(int i=31;i>=0;--i){
    11             if(obj[i]=='1')ans+=base;
    12             base*=2;
    13         }
    14         cout<<ans<<endl;
    15     }
    16     return 0;
    17 }
  • 相关阅读:
    String和StringBuffer、StringBuilder的区别
    猜字谜小游戏编程
    const 和非 const 函数重载
    沉溺于 Mac,沉溺于 XCode
    开源软件与自由软件的区别——个人体会
    C++/C宏定义中## 连接符与# 符的含义
    const 关键字用法代码观
    博客搬家
    注销、关闭和重启计算机
    c/c++笔试题——const类型的成员函数内部如何改变成员变量
  • 原文地址:https://www.cnblogs.com/acgoto/p/9240341.html
Copyright © 2011-2022 走看看