JSFiddle - React, Tailwind, and code Playground

JavaScript

/** 
 * @param {number} n
 * @return {'A' | 'B' | null}
 */
function findWinner(n) {
  // A : true
  // B : false
  if (!n || n <= 0)
    return null;
  return whoWins(n - 1, true) ? 'A' : 'B';
}

function whoWins(n, player) {
  if (n <= 0)
    return !player;
  return whoWins(n - (player ? 2 : 1), !player);
}

/** Test cases **/
console.log(findWinner(1)); // B
console.log(findWinner(2)); // A
console.log(findWinner(3)); // A
console.log(findWinner(4)); // B
console.log(findWinner(0)); // null
console.log(findWinner(null)); // null