fix(seed): Add tests and solution for Project Euler 14 (#16621)

Added tests and a working solution for problem.
This commit is contained in:
Kristofer Koishigawa
2018-02-11 06:13:22 +09:00
committed by Stuart Taylor
parent 98d92c3e58
commit 084ad620ec

View File

@ -544,17 +544,21 @@
"type": "bonfire", "type": "bonfire",
"title": "Problem 14: Longest Collatz sequence", "title": "Problem 14: Longest Collatz sequence",
"tests": [ "tests": [
"assert.strictEqual(euler14(), 837799, 'message: <code>euler14()</code> should return 837799.');" "assert.strictEqual(longestCollatzSequence(14), 9, 'message: <code>longestCollatzSequence(14)</code> should return 9.');",
"assert.strictEqual(longestCollatzSequence(5847), 3711, 'message: <code>longestCollatzSequence(5847)</code> should return 3711.');",
"assert.strictEqual(longestCollatzSequence(1000000), 837799, 'message: <code>longestCollatzSequence(1000000)</code> should return 837799.');"
], ],
"solutions": [], "solutions": ["function longestCollatzSequence(limit) {\n let longestSequenceLength = 0;\n let startingNum = 0;\n\n function sequenceLength(num) {\n let length = 1;\n\n while (num >= 1) {\n if (num === 1) { break;\n } else if (num % 2 === 0) {\n num = num / 2;\n length++;\n } else {\n num = num * 3 + 1;\n length++;\n }\n }\n return length;\n }\n\n for (let i = 2; i < limit; i++) {\n let currSequenceLength = sequenceLength(i);\n if (currSequenceLength > longestSequenceLength) {\n longestSequenceLength = currSequenceLength;\n startingNum = i;\n }\n }\n return startingNum;\n}"],
"translations": {}, "translations": {},
"challengeSeed": [ "challengeSeed": [
"function euler14() {", "function longestCollatzSequence(limit) {",
" // Good luck!", " // Good luck!",
" return true;", " return true;",
"}", "}",
"", "",
"euler14();" "longestCollatzSequence(14);",
"longestCollatzSequence(5847);",
"longestCollatzSequence(1000000);"
], ],
"description": [ "description": [
"The following iterative sequence is defined for the set of positive integers:", "The following iterative sequence is defined for the set of positive integers:",