《程序员》官方BLOG

欢迎热心的读者随时与我们交流,您的支持是我们最大的动力!

用户操作
[即时聊天] [发私信] [加为好友]
《程序员》编辑ID:programmer_editor
1051307次访问,排名24好友0人,关注者71
programmer_editor的文章
原创 186 篇
翻译 1 篇
转载 3 篇
评论 1364 篇
最近评论
gms810:说的不错
davil_dev:我比较喜欢Firefox!
bluesz56788:有具体的出版日期进行发布吗。
kwlong2008:我是做网站建设的,来看看你的空间,不错,欢迎踩我的网站制作空间!
domemy:Linux 环境下的多核调试
— Intel + Totalview 强强联合!
目前,在软件开发行业,各种性能优异的调试工具层出不穷。但是,它们中的绝大部分都只支持windows环境。即使能支持linux平台,操作起来也很不方便。因此,对于长期在linux上编写程序的开发人员来说,如何调试就成了一个令人头痛的问题!Intel软件 和 Total……
文章分类
收藏
    相册
    《程序员》08年封面秀
    06年《程序员》封面秀
    07年《程序员》封面秀
    Logo
    编辑部合影
    调查分析图表
    模版
    文章用图
    新年祝福,名家寄语
    友情链接
    博文视点
    杂志订阅
    杂志订阅
    征文启事
    存档
    软件项目交易
    订阅我的博客
    XML聚合  FeedSky
    订阅到鲜果
    订阅到Google
    订阅到抓虾
    订阅到BlogLines
    订阅到Yahoo
    订阅到GouGou
    订阅到飞鸽
    订阅到Rojo
    订阅到newsgator
    订阅到netvibes

    原创 12期算法擂台解答收藏

    新一篇: 《程序员》2008年1月全新改版上市:解读信息时代第三次浪潮 | 旧一篇: 维基百科,全世界的百科全书—Jimmy Wales

     
    时间表达
    英文口语表达时间有如下6种句型:
    l         It is five past seven.(7点5分)
    l         It is eleven to ten. (9点49分)
    l         It is half past nine. (9点30分)
    l         It is a quarter past eight. (8点15分)
    l         It is a quarter to ten. (9点45分)
    l         It is three o’clock. (3点)
    请根据输入的时间,输出相应的英文表达。
    程序从键盘输入多行数据,每一行为两个非负整数A和B,其中0<=A<13,0<=B<60,分别表示小时数和分钟数。如果输入的某一行为0 0,则表示输入已结束。程序输出要求:对于输入的每一行(最后的0 0行除外),输出相应的时间表达字符串,要求为上面6种句型之一。输入输出样例见下:
     
    样例输入
    8 21
    12 45
    5 0
    0 30
    0 0
    样例输出
    It is twenty-one past eight.
    It is a quarter to thirteen.
    It is five o’clock.
    It is half past zero.
    #include <iostream>
            #include <string>
            using namespace std;
    int main()
    {
     int hour, minute;  // 小时数和分钟数
     const string STR[] = {"zero", "one",  "two",  "three", "four",  "five",  "six", "seven",
            "eight", "nine",  "ten",  "eleven", "twelve", "thirteen","fourteen",
            "a quarter", "sixteen", "seventeen", "eighteen", "nineteen", "twenty",
            "twenty-one", "twenty-two", "twenty-three", "twenty-four", "twenty-five",
            "twenty-six", "twenty-seven", "twenty-eight", "twenty-nine", "half"};
     while (cin >> hour >> minute)
     {
      if (hour == 0 && minute == 0) // 0 0行,退出
       break;
      if (minute == 0) // 整点
       cout << "It is " << STR[hour] << " o'clock." << endl;
      else if (minute <= 30) // 不超过30分
       cout << "It is " << STR[minute] << " past " << STR[hour] << "." << endl;
      else // 超过30分
       cout << "It is " << STR[60 - minute] << " to " << STR[hour + 1] << "." << endl;
     }
     return 0;
    }
      

    发表于 @ 2007年12月22日 19:08:00|评论(loading...)|编辑

    新一篇: 《程序员》2008年1月全新改版上市:解读信息时代第三次浪潮 | 旧一篇: 维基百科,全世界的百科全书—Jimmy Wales

    评论

    #i0101 发表于2007-12-25 16:50:00  IP: 222.89.3.*
    我想这个算法有疑点:就是如果(hour==12&&minute>=31),程序的输出就可能出现{it's xxminute to thirteen;}这是不允许的根据题设条件。希望高手指点
    #shuyechengying 发表于2008-01-03 22:39:46  IP: 61.144.54.*
    没不允许啊,是输入的时候A<13,看样例2
    #nemathsboy 发表于2008-01-07 11:52:59  IP: 10.10.121.*
    按照输入的样例,应该说是十二进制的,那么翻译时为什么会出现13呢?如果允许输出13,那就应该可以输入24进制的表达式,那又为什么会出现24点?请解释。
    #shuyechengying 发表于2008-01-07 22:01:28  IP: 61.144.54.*
    你可以认为是24进制啊,但是题目要限定h的范围是0~12又有什么问题呢?而且24进制中也不会出现24:m的啊
    #nemathsboy 发表于2008-01-10 10:46:30  IP: 121.33.122.*
    这样说来,就是输入与输出使用不同的进制?
    #shuyechengying 发表于2008-01-11 21:57:49  IP: 61.144.54.*
    这样理解也对吧
    #raodoudou321 发表于2008-04-24 15:18:57  IP: 222.82.242.*
    但他没有却12点的时候进行判断啊..如果HOUR=12的话,应该让小时置为1.
    发表评论  


    当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
    Csdn Blog version 3.1a
    Copyright © 《程序员》编辑