// Numbas version: exam_results_page_options {"name": "Recursive JS function", "extensions": [], "custom_part_types": [], "resources": [], "navigation": {"allowregen": true, "showfrontpage": false, "preventleave": false, "typeendtoleave": false}, "question_groups": [{"pickingStrategy": "all-ordered", "questions": [{"name": "Recursive JS function", "tags": [], "metadata": {"description": "

This shows how to implement a recursive function in JavaScript with a nested function definition.

", "licence": "Creative Commons Attribution 4.0 International"}, "statement": "

$\\var{n}! = \\var{f}$

", "advice": "", "rulesets": {}, "extensions": [], "variables": {"f": {"name": "f", "group": "Ungrouped variables", "definition": "factorial(n)", "description": "", "templateType": "anything"}, "n": {"name": "n", "group": "Ungrouped variables", "definition": "5", "description": "", "templateType": "anything"}}, "variablesTest": {"condition": "", "maxRuns": 100}, "ungrouped_variables": ["n", "f"], "variable_groups": [], "functions": {"factorial": {"parameters": [["n", "number"]], "type": "number", "language": "javascript", "definition": "function fact(n) {\n n = Math.floor(n);\n if(n<=1) {\n return 1;\n }\n return n*fact(n-1);\n}\n\nreturn fact(n);"}}, "preamble": {"js": "", "css": ""}, "parts": [], "partsMode": "all", "maxMarks": 0, "objectives": [], "penalties": [], "objectiveVisibility": "always", "penaltyVisibility": "always", "contributors": [{"name": "Christian Lawson-Perfect", "profile_url": "https://numbas.mathcentre.ac.uk/accounts/profile/7/"}]}]}], "contributors": [{"name": "Christian Lawson-Perfect", "profile_url": "https://numbas.mathcentre.ac.uk/accounts/profile/7/"}]}