Skip to content

Instantly share code, notes, and snippets.

@inesusvet
Created February 10, 2016 12:11
Show Gist options
  • Save inesusvet/b05d5a7aaa333eab8244 to your computer and use it in GitHub Desktop.
Save inesusvet/b05d5a7aaa333eab8244 to your computer and use it in GitHub Desktop.
/*
Макдак продает нагитсы в коробках по 6, 9 или 20 кусочков.
Возможно купить 15 кусочков (одна коробка 6 кусочков и одна 9), но не возможно купить ровно 16 кусочков.
Напишите функцию McNuggets, которая принимает один аргумент, n, и возвращает true, если возможно купить такое количество кусочков комбинируя упаковки по 6, 9 и 20 кусочков в каждой, иначе возвратить false.
*/
var isDivisible = function(number, modulo) {
return (number % modulo) === 0;
};
var findMatch = function(number, sizes) {
for (var i in sizes) {
if (isDivisible(number, sizes[i])) {
return true;
}
}
};
var main = function(number, sizes) {
if (number < 0) {
return false;
}
if (findMatch(number, sizes)) {
return true;
}
for (var i in sizes) {
var match = main(number - sizes[i], sizes);
if (match) {
return true;
}
}
return false;
};
var mcNuggets = [6, 9, 20];
console.log(main(15, mcNuggets));
console.log(main(16, mcNuggets));
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment