第一题我下来做了下,用队列模拟的,不知道还有没什么别的方法

var arrN = '2 4'.split(' ').map(char => parseInt(char));
var P = 5;
var X = 10;


var sum = 1;
var que = [];
que.push(1);

while(que.length !== 0) {
    var birthYear = que.shift();
    for (var i = birthYear; i <= Math.min(birthYear + P - 1, X); i++) {
        if (arrN.indexOf(i + 1 - birthYear) !== -1) {
            que.push(i);
            sum++;
        }
    } 

    if (X + 1 - birthYear >= P) {
        sum--;
    }

}

console.log(sum);