首页 新闻 会员 周边

求一个js算法问题,几个循环比较多,头都大了,请大神帮忙看一下

0
悬赏园豆:15 [待解决问题]

问题描述:

在一组数列中,比如数列[1,2,3,4,5]五个数中(逗号间隔,5个数为一组), 根据所勾选的条件进行筛选,求数列的首位是否包含奇数或者是否偶数,或者末位是否包含奇数或者偶数,或者奇数偶数同时存在,或者奇数偶数都不存在。

如下图所示:

条件是:

龙头:奇偶是单选的,龙头就是首位数

凤尾:奇偶是单选的,凤尾就是末位数

出现:0个或者1个或者2个,可以多选,就是改组数列中所包含的个数

要求算法是:

当输入的一组数列,由从小到大排列

1、比如数列[1,2,3,4,5]这5个数字中,首位和末位都是奇数,则勾选了首位奇数,末位是奇数,出现1个,则该数列不符合,因为,出现了两个奇数。

2、再比如,如上数列,勾选了出现2个时,则符合,因为所勾选的首位和末位都是奇数,那么就有2个符合了。

3、比如数列[2,3,4,5,6]这5个数字中,因为首位和末位都是偶数,如果勾选的是两个奇数,或者一个偶数一个奇数,则都不符合,只有勾选了出现2个,才符合,如果此时勾选的是0个,因为勾选的是两个奇数,但出现的数列首位和末位都是偶数,并且勾选的是出现0个,那么则就是有效。

 

也就是说,该数列是否有效,则要根据所勾选的条件来判断,勾选的,就是要数列中所存在的,勾选0则为数列中不存在的,

求js写法,不需要实现大小排序等,只需要假设输入一个数列,实现勾选的条件筛选该数列是否为有效数列即可! 

js
伦巴舞的主页 伦巴舞 | 初学一级 | 园豆:196
提问于:2014-06-08 01:33
< >
分享
所有回答(1)
0

 

看了半天,没明白这个有啥难得。

整理一下,成为这样

测试条件一,龙头,true or false

测试条件二,凤尾,true or false

计算有几个true,与“出现”进行比较,相等的话,数列符合条件,不等的话,数列不符合条件。

 

伪代码如下

totalcount=0

if test1=true then

  totalcount=totalcocunt+1

end if

 

if test2=true then

  totalcount=totalcount+1

end if

 

if totalcount=occurTest then

   return true

else

  return false

end if

 

爱编程的大叔 | 园豆:30839 (高人七级) | 2014-06-08 10:36
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册