Написание функции стоимости - PullRequest
0 голосов
/ 29 апреля 2018

У меня проблема с написанием функции стоимости. Мне дали следующую информацию: «Чарльз захватил рыночный прилавок, где он продает свежую рыбу. Каждое утро он покупает рыбу у оптовика по цене 4 доллара за кг до первых 100 кг. и 2,5 долл. США за кг при весе свыше 100 кг. '

Это то, что я написал до сих пор:

cost= function(n)

{
  if (n<=100)
    cost = n*4

  if (n>100)
    cost = 2.5*(n-100) +100*4

}

cost(5)

Это не работает, где я ошибся? Пожалуйста, позвольте мне помочь.

Спасибо.

1 Ответ

0 голосов
/ 29 апреля 2018

Я думаю, вы просто забыли вернуть значение из вашей функции:

cost <- function(n) {
    total <- 0
    if (n <= 100) {
        total <- n*4
    }
    else {
        total = 2.5*(n-100) + 100*4
    }

    return(total)
}

cost(5)

Демо

R имеет правила, которые определяют, существует ли неявное возвращаемое значение и что это было бы, но использование явного оператора return всегда хорошо, поскольку оно дает понять, что ваша функция на самом деле делает.

Примечание: используя ifelse, мы можем фактически обработать всю эту логику в одной строке кода:

cost <- ifelse(n <= 100, n*4, 2.5*(n-100) + 100*4)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...