起初见到这个面试题就想用到循环去求解,但是仔细观察下
得到的规律为1234567898765432 总长为16位
即16次就会重复出现一次
所以想到用n和16进行取余 这样就可以取到对应的数
起初是这么实现的
var str='1234567898765432';
function getNums(n){
return str.charAt((n%16)-1);
};
但是这有个弊端就是在取0 16等 16的倍数的情况下会取不到相应的数值
因此还得对16的倍数进行处理 代码如下
var str='1234567898765432';
function getNums(n){
return n%16==0?str.charAt((n%16)+1):str.charAt((n%16)-1)
};
小白一枚,欢迎指正.......
网友评论