Задача с рекурсией
Помогите решить задачу, не понимаю, в чём проблема. Браузер ничего не выводит
Дано число. Сложите его цифры. Если сумма получилась более 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, время: 04:50. |