JavaScript实现的一个计算数字步数的算法分享
这两天看了下某位大神的github,知道他对算法比较感兴趣,看了其中的一个计算数字的步数算法,感觉这个有点意思,所以就自己实现了一个。
算法描述与实现原理
给出一个整型数字,统计出有多少种走法可以到达目标,比如一个数字4,可以有下面几种走法
[1,3]
[4]
[1,1,2]
[2,2]
[1,1,1,1]
其实通过上面的组合可以得出下面的结论。
1.先列出所有项是1的组合
2.依次从左到右项为1的组合
3.递归上面的集合,找出项里1的索引,然后计算左起2项的值,结果递归此操作
4.排除1和2的情况
下面先提供三个工具函数:
//计算数组内的值
functioncalculate(arg){
returneval(arg.join('+'));
}
//输出数组的值 functionprint(arg){ for(vari=0;i<arg.length;i++){ console.log(arg[i]); } }
//检查是否是正反的走法 functionhasRepeat(src,dist){ if(dist.length!=2)returnfalse; for(vari=0,len=src.length;i<len;i++){ if(dist.length==src[i].length){ if(dist[0]==src[i][1]){ returntrue; } } } returnfalse; }
热门推荐
10 八一幼儿祝福语大全简短
11 公司乔迁食堂祝福语简短
12 婚礼结束聚餐祝福语简短
13 儿媳买车妈妈祝福语简短
14 毕业送礼老师祝福语简短
15 同事辞职正常祝福语简短
16 恭贺新婚文案祝福语简短
17 金店立秋祝福语简短英文
18 婆婆高寿祝福语大全简短