首页 > 其他分享 >写一个方法计算N年时农场里有几只羊(见下文描述)?

写一个方法计算N年时农场里有几只羊(见下文描述)?

时间:2024-12-12 09:32:22浏览次数:1  
标签:非负 N年 农场 number 几只羊 见下文 数量

/**
 * 计算N年后农场羊的数量。
 *
 * 农场初始有两只羊,每年羊的数量翻倍,但每年年底会卖掉一只羊。
 *
 * @param {number} n 年数。
 * @returns {number} n年后羊的数量。
 * @throws {Error} 如果n不是非负整数。
 */
function calculateSheep(n) {
  if (!Number.isInteger(n) || n < 0) {
    throw new Error("年份必须是非负整数。");
  }

  let sheepCount = 2;
  for (let i = 1; i <= n; i++) {
    sheepCount *= 2;
    sheepCount -= 1;
  }
  return sheepCount;
}


// 测试用例
console.log(calculateSheep(0)); // 输出 2
console.log(calculateSheep(1)); // 输出 3
console.log(calculateSheep(2)); // 输出 5
console.log(calculateSheep(3)); // 输出 9
console.log(calculateSheep(4)); // 输出 17
console.log(calculateSheep(5)); // 输出 33

// 错误处理示例
try {
  console.log(calculateSheep(-1));
} catch (error) {
  console.error(error.message); // 输出 "年份必须是非负整数。"
}

try {
  console.log(calculateSheep(1.5));
} catch (error) {
  console.error(error.message); // 输出 "年份必须是非负整数。"
}


这个函数calculateSheep(n) 接受年份 n 作为输入,并返回 n 年后农场里羊的数量。它首先检查 n 是否为非负整数。如果不是,则抛出一个错误。然后,它初始化羊的数量为 2。接下来,它循环 n 次,每次将羊的数量翻倍,然后减 1(因为年底卖掉一只羊)。最后,它返回最终的羊的数量。

代码中包含了几个测试用例,以演示函数的用法和输出。还包括了错误处理示例,以演示如何处理无效输入。

这个解答使用了JavaScript,因为问题中提到了前端开发。这个函数可以很容易地集成到任何前端项目中。

标签:非负,N年,农场,number,几只羊,见下文,数量
From: https://www.cnblogs.com/ai888/p/18601487

相关文章