Я пытать makeBricks problem on codingbat.com следующим образом:Почему один код работает, но не другой?
Мы хотим сделать ряд кирпичей, который цель дюймов в длину. У нас есть количество маленьких кирпичей (по 1 дюйм каждый) и большой кирпич (по 5 дюймов каждый). Возвратите true если можно сделать цель, выбрав из данные кирпичи.
Если я просто запускаю тест, для которого сценарии НЕ будут работать (код А), код передает все тесты запуска codingbat.
Код
return(!(goal > (small+(big*5)) || (goal % 5 > small)));
Если с другой стороны, я хочу, чтобы перетащить его и проверить его на все возможные сценарии, в которых комбинация кирпича будет работать (Код B), код проходит все тесты на за исключением последнего, который только говорит «другие тесты». Поскольку я не знаю, что это за другие тесты, я в тупике, почему Code B не работает. Есть предположения?
Код B
int allBigSize = big*5;
if(goal > (small+(big*5)) ) return false; //tests all small and big
if(small >= goal) return true; //tests only small
if((big*5) >= goal && goal%5 == 0) return true; //tests only big
if((big*5) % (goal-small) == 0) return true; //tests combo of big and small
else {
return(small >= Math.abs((goal-(big*5))-small));
}
Почему один код какой? – nhgrif
Что значит «это не работает»? Каковы ваши ожидаемые результаты и результаты? –
@nhgrif: «Делайте, или нет. Нет« почему ». – usr2564301