CodeSignal Challenge: телефонный звонок - PullRequest
0 голосов
/ 11 сентября 2018

вызов :

Некоторые показатели использования телефона можно описать следующим образом:

  • первая минута разговора стоит минимум 1 цент
  • каждая минута со 2-го по 10-е (включительно) стоит min2_10 центов
  • каждая минута после 10-го стоит min11 центов.

У вас есть центы на вашем счете до звонка.Какую продолжительность самого длинного звонка (в минутах, округленное до ближайшего целого числа) вы можете иметь?

Мой код: (Мой код не проходит 3 из скрытых тестов)

function phoneCall(min1, min2_10, min11, s) {
    
    //Declaring Variables
    let minutes = 0;
    let taken = 0;
    
    //Checks if there is atleast one minute to charge for
    if (s >= min1) {
        minutes = minutes + 1;
        s = s - min1;
        //Console Update
        console.log("Call Length: " + minutes + " mins" + " |" + " Cents Left: " + s + " ¢");
    }
    
    //Checks how many minutes it can call for in between 2 and 10
    for (let i = 0; i < 9; i++) {
        if (s > 1) {
            minutes = minutes + 1;
            s = s - min2_10;
            //Console Update
            console.log("Call Length: " + minutes + " mins" + " |" + " Cents Left: " + s + " ¢");
        } 
        
        
        //Checks if minutes equals 10 and then checks for how many minutes it can afford
        if (minutes === 10) {
            if (s >= 1) {
                minutes = minutes + Math.floor(s / min11);
                taken = taken + Math.floor(s / min11); 
                s = s - (taken * min11);
                //Console Update
                console.log("Call Length: " + minutes + " mins" + " |" + " Cents Left: " + s + " ¢");
            }
        }
    }
    
    //Returns the minutes
    return minutes;
}

1 Ответ

0 голосов
/ 11 сентября 2018

Только что нашел то, что не работало!

Оператор if был написан как "if (s> 1) {}", но это было написано неправильно, потому что он не работал бы для всех типов ввода, поэтомуЯ изменил его на "if (s> = min2_10) {}".

Это код:

function phoneCall(min1, min2_10, min11, s) {
    
    //Declaring Variables
    let minutes = 0;
    let taken = 0;
    
    //Checks if there is atleast one minute to charge for
    if (s >= min1) {
        minutes = minutes + 1;
        s = s - min1;
        //Console Update
        console.log("Call Length: " + minutes + " mins" + " |" + " Cents Left: " + s + " ¢");
    }
    
    //Checks how many minutes it can call for in between 2 and 10
    for (let i = 1; i < 10; i++) {
        if (s >= min2_10) {
            minutes = minutes + 1;
            s = s - min2_10;
            //Console Update
            console.log("Call Length: " + minutes + " mins" + " |" + " Cents Left: " + s + " ¢");
        } 
        
        
        //Checks if minutes equals 10 and then checks for how many minutes it can afford
        if (minutes === 10) {
            if (s >= 1) {
                minutes = minutes + Math.floor(s / min11);
                taken = taken + Math.floor(s / min11); 
                s = s - (taken * min11);
                //Console Update
                console.log("Call Length: " + minutes + " mins" + " |" + " Cents Left: " + s + " ¢");
            }
        }
    }
    
    //Returns the minutes
    return minutes;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...