Count the number of lucky tickets for 2, 4, 6, 8 and 10 digital values.
var sum = function(num){ // var str = num.toString(), arr = str.split(''), s = 0; arr.forEach(function(value){ s+=parseInt(value); }); return s; }, luckyTickets = function(len){ var lenMiddle = len/2, maxSize = Math.pow(10,lenMiddle), result = 0; for(var i=0;i<maxSize;i++) for(j=0;j<maxSize;j++) if( sum(i) == sum(j) ) result++; return result; }; console.log( luckyTickets(8) ); // 4 816 030
var getNextArr = function(prevArr){ // var newLen = prevArr.length + 9, // 9 arr = []; // for(var i=0; i<newLen; i++){ var q = 0; // for(j=0; j<10; j++) // 10 if(prevArr[ij]) // ... q+=prevArr[ij]; // arr[i] = q; // arr.push(q); } return arr; }, luckyTickets = function(num){ // var arr = [], // result = 0; // , for(i=0;i<10;i++) arr.push(1); // 10 for(i=0;i<(num/2-1);i++) // arr = getNextArr(arr); // arr.forEach(function(v){ result+=Math.pow(v,2); }); // return result; };
console.log( luckyTickets(300) ); // 8.014950093120178e+297 **
Source: https://habr.com/ru/post/266479/
All Articles