首页
社区
课程
招聘
[求助]帮忙看一下这道题,C语言算法问题
发表于: 2011-6-15 15:57 3786

[求助]帮忙看一下这道题,C语言算法问题

2011-6-15 15:57
3786
有一个数组char point[15],15个位置中的每一个位置的取值范围为0-8;其中8可代替0-7中的任何一个.
现把15个位置分成9组,一组为五个元素;分法为:
第一组:5,6,7,8,9(数组下标,如9即为point[9]);
第二组:0,1,2,3,4,;
第三组:10,11,12,13,14;
第四组:0,6,12,8,4;
第五组:10,6,2,8,14;
第六组:0,1,7,3,4;
第七组:10,11,7,13,14;
第八组:5,11,12,13,9;
第九组:5,1,2,3,9
名词说明:连线:即一组中有至少三个连续的相同的元素,注意8是可代替0-8中的任何数的,例如一组中有;1,1,8,5,6,那个这组就是存在一个1的三连线1,1,8

要求写一个函数:
    输入为:1)要产生连线的长度数组指针*plen;2)各个长度连线的相应值数组指针*pdata;
    输出为:point[15]数组

例如要产生3条连线,长度分别为len[0] = 3,len[1] = 4,len[2] = 5,对应的数值为data[0]=0,data[1]=4,data[2]=6,那么就把len和data传进该函数,
然后函数运算输出point[15]的15个值;

备注:1)以最长命名;例如1,1,1,1,1这就是一个1的5连线,不存在1的3连线

2)一组中允许有1个以上的连线:例如1,1,8,2,2;里面就有两个连线

3)没有要求产生的连线,里面是绝对不能有的.例如要生成有两条连线的15个数字,那么这两个连线是9条线的其中任意两条;剩余的7条线就不能有任何连线的存在了

4)一组是5个元素,连线必须有个元素是第一或第五个,即要连首或尾才算是连线
5)5个8连线时,8不可变,只能是自己,所以只是一个8的5连线
6)限定最多只能同时出现5条连线
7) 最多只能同时有2条5两线。最多只能同时有2条4两线,3连线不限
8) 可以输入一共产生n条连线,并且n条连线长度一样,数值一样
9) 5连线及以上不可出现8的连线,但是其他的连线可以包括8
10)允许相同的输入
要求:
1)用c语言编写,提供源码,并验证可行。
2)运算时间尽量短。
3)提供验证函数,提供源码。

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 132
活跃值: (28)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
好麻烦的题……请大家帮忙看一下吧
2011-6-15 15:59
0
游客
登录 | 注册 方可回帖
返回
//