How to solve 13 Euler's problem?

  • 0
    My solution:
    let sum = 0; // сумма чисел
    let a = 1; // элемент по счету с конца
    
    function count() {
    	let arr = []; // массив для чисел, которые суммируются
    
    	for (let i = 0; i < array.length; i++) { // проходимся по массивам
    		let str = array[i].toString().split(''); // отделяем числа друг от друга
    		let number = str.slice([str.length - a], [str.length]); // берем числа с конца начиная от 1 
    		arr.push(parseInt(number.join(''))) // соединяем числа которые брали и переносим их в числовой тип
    	}
    
    	let protect = arr.reduce((total, sum) => total + sum, 0); // сумма всех этим чисел
    
    	sum += Number(protect); // прибавляем к sum
    
    	if (String(sum).length < 10) { // проверяем длину sum
    		a++;
    		sum = 0;
    		count();
    	} else {
    		console.log(sum) // выводим сумму
    	}
    }
    count()


    The code works, but the answer is incorrect (at least the answer is not accepted as correct on the official site).
    Tell me what's wrong. You can create an array with numbers at the link: https://projecteuler.net/projecteuler.net/problem=13
    It's too big to fit here.
    JavaScript Harrison Riley, Sep 13, 2020

  • 1 Answers
  • 0
    The number type in js is not integer, so there can be losses when summing such large numbers.

    Try using BigInt, it might work with it. But in general, this task presupposes an analytical solution, not a head-on solution.
    Conner Collins

Your Answer
To place the code, please use CodePen or similar tool. Thanks you!