Problem 38

Run Settings
LanguageJavaScript
Language Version
Run Command
function isContainedIn(subArr, superArr) { let mu = true; const checkFn = (x) => {if (!superArr.includes(x)) { mu = false;}} subArr.forEach(checkFn); return mu; } // console.log(isContainedIn([1,2], [1,2,3]) function numberToArray(num) { return num.toString().split('').map(x => parseInt(x)); } function arrayToNumber(inputArr) { return inputArr.reduce((a,b, index) => a + b * 10 ** (inputArr.length - index -1),0 ) } // console.log(numberToArray(2345) //console.log(arrayToNumber([2,3,4,5])) function checkIfEligible(num) { const result = [num] const out = num.toString().split('').map(x => parseInt(x)) let dig = [1,2,3,4,5,6,7,8,9].filter(x => !out.includes(x)) let z = num; while (dig.length !== 0) { const n = z + num; if (isContainedIn(numberToArray(n), dig )) { result.push(n); z = n dig = dig.filter(x => !numberToArray(n).includes(x)) } else { return []; } } return result; } // console.log(checkIfEligible(192)) function calculatePanDigitalsWith(inputArr) { if ( inputArr.length === 5 ) { return [] } let resultArr = [] resultArr.push(checkIfEligible(arrayToNumber(inputArr))) let availDig = [1,2,3,4,5,6,7,8,9].filter(x => !inputArr.includes(x)) for (let item of availDig ) { resultArr = resultArr.concat(calculatePanDigitalsWith([...inputArr, item])) } return resultArr.filter(x => x.length > 0) } // We can restrict search to numbers with first digit 9 b/c // we already now, that 918273645 console.log(calculatePanDigitalsWith([9]))
Editor Settings
Theme
Key bindings
Full width
Lines