| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2149 人关注过本帖, 2 人收藏
标题:华为的一道面试题--活跃气氛,顺便散分
取消只看楼主 加入收藏
demonleer
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:10
帖 子:483
专家分:1225
注 册:2012-6-4
结帖率:100%
收藏(2)
已结贴  问题点数:100 回复次数:5 
华为的一道面试题--活跃气氛,顺便散分
此题是华为的一道面试题。

发上来的目的是为了活跃下论坛的气氛。

大家踊跃发言,把自己的想法以及代码写上。

最后请各位版主点评下大家的代码以及思路,我根据点评来加分。

程序代码:
#define TIME_TAB_MAX 10
char g_tab_time[MAX_TAB_TIME][6] = 
{
    "22:08",
    "08:31",
    "18:25",
    "21:35",
    "01:35",
    "23:45",
    "00:03",
    "09:34",
    "07:23",
    "09:59"
};

char g_sleep_time[6] = {
  "21:30"

 };

 
用C语言编写函数,从g_time_tab 中找出最接近g_sleep_time的时间,并且printf 出结果。

比方说g_sleep_time为21:30,那么输出的应该是21:35。

如果g_sleep_time为23:59,那么输出的应该是00:03。

题不难,但是不能用atoi等相关的库函数。
搜索更多相关主题的帖子: color 
2012-06-14 22:03
demonleer
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:10
帖 子:483
专家分:1225
注 册:2012-6-4
收藏
得分:0 
回复 4楼 lonmaor
版主的代码写的很简洁。

但是如果休眠时间是23:59的话,你的程序还是输出23:45哦。

应该输出00:03的。
2012-06-14 23:28
demonleer
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:10
帖 子:483
专家分:1225
注 册:2012-6-4
收藏
得分:0 
回复 6楼 邱威
问的好,相等的话就随便输出一个。
2012-06-14 23:29
demonleer
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:10
帖 子:483
专家分:1225
注 册:2012-6-4
收藏
得分:0 
以下是引用specilize在2012-6-15 09:21:28的发言:

首先将所有的时间转换为整数,然后使用堆排序排为从小到大,然后确定g_sleep_time所属区间,为两种情况:若在g_tab_time[min]-----g_tab_time[max],则使用折半查找,通过比较绝对值查找最接近时间,若不在区间g_tab_time[min]-----g_tab_time[max],则首先对g_sleep_time进行取模运算g_sleep_time%(g_tab_time[min]+g_tab_time[max]),然后将结果与g_tab_time[min]和g_tab_time[max]进行比较即可,例如g_tab_time[min]=00:03(整数3),g_tab_time[max]=23:45(整数1425),g_sleep_time=23:59(整数1439),g_sleep_time取模后为11,经过比较,与3最接近,代码略。。。。。。。。


思路不错,但是有几个问题。
1. 字符转化成整数,这个问题不难。
2. 堆排序,这个问题也不难。
3. 如果g_tab_time[min] = 00:05(整数5), g_tab_time[max] = 23:59(整数1439),若现在g_sleep_time = 00:01(整数1),显然,1不在区间内,那用1对5+1439取模,得到1,将1与g_tab_time[min]和g_tab_time[max]进行比较,发现离5最近,这时候真是应该是选00:05么?
2012-06-15 20:09
demonleer
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:10
帖 子:483
专家分:1225
注 册:2012-6-4
收藏
得分:0 
回复 10楼 lonmaor
版主V587啊 膜拜一个
2012-06-15 20:10
demonleer
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:10
帖 子:483
专家分:1225
注 册:2012-6-4
收藏
得分:0 
18楼、19楼的代码写的都很棒啊,膜拜版主。

各位高手给点评下啊。
2012-06-16 09:33
快速回复:华为的一道面试题--活跃气氛,顺便散分
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.012014 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved