主题:第64次编程比赛
[size=4]豬年最後一次比賽,希望無論新人老鳥大家都能通過!
比賽一共兩題,呵呵,本來想出一道,考察基本功,但是或許高手們會認為太簡單,又編了一道題,博大家一笑^_^
截止時間: 2月4日19時11分 立春
[quote]
主题:
加拿大電信有一特殊的报文,把原始信息拆解后,混入一些杂乱信息流再发送。现在我们要写一个函数,目的是从收到的信息流中加工出有效的内容。
int decollator(const char SOH[ ], char text[ ])
{
...
}
SOH 是以0值结尾的string。他保存待处理的信息流;
text 保存提炼出的有效信息,他已分配了足夠空间,函数中不必考虑溢出问题;
返回值 是text中字符个数。
处理规则如下:
1、 搜索信息流中的 ‘1’ 和‘0’,每找到8个一组 就按照“二进制数”特征转为ASCII字符,如果这个字符是可打印字符(meaningful character)即为有效字符,保存
例如 01100001 -> 97 -> 'a' (‘a’将收录到text中)
2、 如果遇到信息流结尾,或规则3、4情况时,8个一组的‘1’或‘0’并没找齐,那么用‘0’补齐再处理
3、 信息流中出现关键字“RPT”并且紧跟一个自然数n(n不超过255),那么:将刚才得到的有效字符重复n次
例如: " 01100010 RTP9 " -> "bbbbbbbbb" (九个‘b’将收录到text中)
4、 信息流中出现关键字“SKP”,那么:忽略信息流中接下来的8个‘1’或‘0’
副题:
你去爷爷奶奶家接他们过年,恰好不在家。好不容易拨通了电话,匆忙中奶奶在电话中说“我们还在XX市场排队呢,一会儿就会来,要不你来接我们吧,出门往西四个路口,再往南走几个路口就到了,说不定在路上可以碰面呢……”
你刚跨出门,就想到电话中并没讲清楚具体怎么走法。能不能碰面还真是个问题。
你知道,这个城镇道路全是标准的十字路口,而且路口的间距都相同,奶奶家坐落在一个路口上,XX市场在另外某个路口上。
如果我再告诉你,按照就近的原则,从奶奶家到XX市场可以有70条不同路线,而且每条路线距离都相等。
那么,你能否知道奶奶口中所说“几个路口”到底是多少个?
请用程序求得答案。
[/quote]
注:本次測試環境 OPEN WATCOM (16位)[/size]
比賽一共兩題,呵呵,本來想出一道,考察基本功,但是或許高手們會認為太簡單,又編了一道題,博大家一笑^_^
截止時間: 2月4日19時11分 立春
[quote]
主题:
加拿大電信有一特殊的报文,把原始信息拆解后,混入一些杂乱信息流再发送。现在我们要写一个函数,目的是从收到的信息流中加工出有效的内容。
int decollator(const char SOH[ ], char text[ ])
{
...
}
SOH 是以0值结尾的string。他保存待处理的信息流;
text 保存提炼出的有效信息,他已分配了足夠空间,函数中不必考虑溢出问题;
返回值 是text中字符个数。
处理规则如下:
1、 搜索信息流中的 ‘1’ 和‘0’,每找到8个一组 就按照“二进制数”特征转为ASCII字符,如果这个字符是可打印字符(meaningful character)即为有效字符,保存
例如 01100001 -> 97 -> 'a' (‘a’将收录到text中)
2、 如果遇到信息流结尾,或规则3、4情况时,8个一组的‘1’或‘0’并没找齐,那么用‘0’补齐再处理
3、 信息流中出现关键字“RPT”并且紧跟一个自然数n(n不超过255),那么:将刚才得到的有效字符重复n次
例如: " 01100010 RTP9 " -> "bbbbbbbbb" (九个‘b’将收录到text中)
4、 信息流中出现关键字“SKP”,那么:忽略信息流中接下来的8个‘1’或‘0’
副题:
你去爷爷奶奶家接他们过年,恰好不在家。好不容易拨通了电话,匆忙中奶奶在电话中说“我们还在XX市场排队呢,一会儿就会来,要不你来接我们吧,出门往西四个路口,再往南走几个路口就到了,说不定在路上可以碰面呢……”
你刚跨出门,就想到电话中并没讲清楚具体怎么走法。能不能碰面还真是个问题。
你知道,这个城镇道路全是标准的十字路口,而且路口的间距都相同,奶奶家坐落在一个路口上,XX市场在另外某个路口上。
如果我再告诉你,按照就近的原则,从奶奶家到XX市场可以有70条不同路线,而且每条路线距离都相等。
那么,你能否知道奶奶口中所说“几个路口”到底是多少个?
请用程序求得答案。
[/quote]
注:本次測試環境 OPEN WATCOM (16位)[/size]

您所在位置:
