Questionário sobre recursão

Para passar no quiz, você deve responder corretamente pelo menos 9 das 10 perguntas abaixo.
O que é recursão em programação?
Qual dos seguintes é um exemplo de recursão?
O que a seguinte função irá retornar?
function sum(n) {
  if (n === 0) return 0;
  return n + sum(n - 1);
}
sum(3);
Quantas vezes a função mystery será chamada?
function mystery(n) {
  if (n <= 1) return 1;
  return mystery(n - 2);
}
mystery(5);
Qual das seguintes afirmações é verdadeira sobre recursão?
Qual das seguintes opções seria um caso base apropriado para o exemplo dado?
function countDownToZero(number) {
  // Base case goes here.

  console.log(number);
  countDownToZero(number - 1);
}
Por que a recursão deve ter um caso base?
O que essa função recursiva fará?
function repeatString(str) {
  return str + repeatString(str);
}
O que é uma call stack?
O que essa função recursiva faz?
function changeString(str) {
  if (str === "") return "";
  return changeString(str.slice(1)) + str[0];
}