Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 23.11.2020, 22:03
Новичок на форуме
Отправить личное сообщение для student_js28 Посмотреть профиль Найти все сообщения от student_js28
 
Регистрация: 23.11.2020
Сообщений: 4

Функция находящая минимальное число
Всем привет. У меня есть функция которая находит минимальное число которое больше 300 и нацело делиться на 17. Теперь мне нужно переписать эту функцию под рекурсию, с которой я к сожалению плохо знаком, буду благодарен если поможете кодом.
function minNumber(x, b){
    while (true) {
      if (x % b==0) {
        console.log(x);
        break;
      }
      x++;
    }
    }
    minNumber(300, 17)
Ответить с цитированием
  #2 (permalink)  
Старый 23.11.2020, 22:18
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,064

student_js28,
махнёмся, вы решение без цикла, в одну строку, вернуть сразу нужное число, а в замен рекурсию?
Ответить с цитированием
  #3 (permalink)  
Старый 23.11.2020, 22:59
Новичок на форуме
Отправить личное сообщение для student_js28 Посмотреть профиль Найти все сообщения от student_js28
 
Регистрация: 23.11.2020
Сообщений: 4

Честно говоря, не особо понимаю как можно решить данную задачу без цикла ввиду малого опыта, буду признателен если поможете разобраться
Ответить с цитированием
  #4 (permalink)  
Старый 23.11.2020, 23:53
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,692

Ну как бы еще и математику немного надо знать.

const minNumber = (x, n) => (Math.floor(x/n)+1)*n
alert(minNumber(300, 17))

Последний раз редактировалось voraa, 23.11.2020 в 23:56.
Ответить с цитированием
  #5 (permalink)  
Старый 24.11.2020, 00:04
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,064


function minNumberNoRecursion(x, b){
     return x + b - x % b
    }
console.log(minNumberNoRecursion(300, 17))

function minNumberRecursion(x, b){
     return ++x % b ? minNumberRecursion(x, b) : x
    }
console.log(minNumberRecursion(300, 17))
Ответить с цитированием
  #6 (permalink)  
Старый 24.11.2020, 11:39
Аватар для Alexandroppolus
Профессор
Отправить личное сообщение для Alexandroppolus Посмотреть профиль Найти все сообщения от Alexandroppolus
 
Регистрация: 25.10.2016
Сообщений: 1,004

Это на курсах по программизму дают такие идиотские задачи на рекурсию?
Ответить с цитированием
  #7 (permalink)  
Старый 29.11.2020, 00:22
Аватар для Gubka_Morty
Новичок на форуме
Отправить личное сообщение для Gubka_Morty Посмотреть профиль Найти все сообщения от Gubka_Morty
 
Регистрация: 29.11.2020
Сообщений: 1

function minNumber(x, b)
{
    if(x % b == 0) return x;
    else return  minNumber(x + 1, b);
}
    alert(minNumber(300, 17));



Вот код. Суть проста, вызываем функцию с начальными значениями 300 и 17, дальше делаем проверку - если Х делится нацело на 17, то выходим и возвращаем этот самый Х. Иначе, число Х не делится нацело на 17 и в таком случае мы снова вызываем эту же функцию, но меняем во входящих значениях Х на Х + 1, то есть увеличиваем на 1. Дальше функция начинается сначала и теперь мы пробуем уже не 300 поделить на 17, а 301. Если не сработало, то мы опять вызываем функцию с изменением аргумента Х на Х + 1. Теперь Х = 302. И так до тех пор, пока не будет найден ответ.
Ответить с цитированием
  #8 (permalink)  
Старый 29.11.2020, 07:59
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,064

Gubka_Morty,
чем ваш код отличается от пост #5 строка 6?

Последний раз редактировалось рони, 29.11.2020 в 08:11.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Конвертер (перевод) систем счисления helloterry8 Общие вопросы Javascript 7 11.05.2018 22:24
Найти минимальное число в массиве случайных чисел lainlie Общие вопросы Javascript 2 02.04.2018 23:27
передать параметры (количество ячеек, минимальное число и максимальное число)? Почему SilentBelka Элементы интерфейса 4 19.10.2017 16:09
Не могу выбрать из массива минимальное число Help DynkanMaclaud Events/DOM/Window 1 08.05.2015 20:30
Как получить максимальное и минимальное допустимое число в не экспоненциальном виде? FINoM Общие вопросы Javascript 17 25.02.2011 14:48