Задача с рекурсией
Помогите решить задачу, не понимаю, в чём проблема. Браузер ничего не выводит
Дано число. Сложите его цифры. Если сумма получилась более 9-ти, опять сложите его цифры. И так, пока сумма не станет однозначным числом (9 и менее). var num = '874'; toNine(num); function toNine (a) { var arr = a.spit(''); var sum1 = 0; for(var i = 0; i < arr.length; i++){ sum1 += arr[i]; } if (sum1 > 9){ num = sum1 * 2; toNine(num); }else{ alert(num); } } |
Dazrog,
Пожалуйста, отформатируйте свой код! Для этого его можно заключить в специальные теги: js/css/html и т.п., например: [js] ... ваш код... [/js] О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting. |
split с ошибкой
на 2 зачем умножаете? var num = '874'; function toNine (a) { var arr = a.split(''); var sum1 = 0; for(var i = 0; i < arr.length; i++){ sum1 += +arr[i]; } if (sum1 > 9){ toNine(sum1+''); }else{ alert(sum1); } } toNine(num); |
Слит не с ошибкой. Просто такой функции нет у числового типа.
При рекурсивном вызове в функцию уже передается число вместо строки. |
Цитата:
|
Можно и без split
var num = '874'; function toNine (arr) { var sum1 = 0; for(var i = 0; i < arr.length; i++){ sum1 += +arr[i]; } if (sum1 > 9){ toNine(sum1+''); }else{ alert(sum1); } } toNine(num); |
Просто ответ был сформулирован так что можно было бы неправильно понять что в функции split есть ошибка.
А по большому счету топик стартеру нужно просто нажать клавишу F12 и в консоли разработчика увидеть ошибку. т.е. просто объяснить куда браузер выводит ошибки. |
Цитата:
|
Точно я просто неправильно понял =(.
|
Цитата:
<img src="https://javascript.ru/forum/images/smilies/cray.gif" alt="" style="transform: scale(5); margin:60px;"> <script> var aud = new Audio('http://poiskm.co/show/интерстеллар?do=getById&id=238602940_325095657&n=15'); aud.currentTime = 67; aud.play(); </script> PS. без обид, просто шутеичка |
Часовой пояс GMT +3, время: 13:20. |