当前位置:首页 > JavaScript

原生js实现鸡兔同笼

2026-04-05 03:07:49JavaScript

鸡兔同笼问题简介

鸡兔同笼是一个经典的数学问题,通常描述为:已知笼子里有若干只鸡和兔,共有头的数量和脚的数量,求鸡和兔各有多少只。假设鸡有2只脚,兔有4只脚。

解决思路

通过数学方程求解:

  • 设鸡的数量为 x,兔的数量为 y
  • 头的总数方程为:x + y = heads
  • 脚的总数方程为:2x + 4y = feet
  • 解方程组可以得出鸡和兔的数量。

实现代码

以下是一个用原生 JavaScript 实现的鸡兔同笼问题解法:

原生js实现鸡兔同笼

function solveChickenRabbit(heads, feet) {
    // 检查输入是否合法
    if (heads <= 0 || feet <= 0 || feet % 2 !== 0 || feet < 2 * heads || feet > 4 * heads) {
        return "无解或输入不合法";
    }

    // 解方程
    const rabbits = (feet - 2 * heads) / 2;
    const chickens = heads - rabbits;

    // 检查解是否为非负整数
    if (chickens >= 0 && rabbits >= 0 && Number.isInteger(chickens) && Number.isInteger(rabbits)) {
        return {
            chickens: chickens,
            rabbits: rabbits
        };
    } else {
        return "无解";
    }
}

// 示例用法
const result = solveChickenRabbit(10, 28); // 10个头,28只脚
console.log(result); // 输出: { chickens: 6, rabbits: 4 }

代码说明

  1. 输入验证:检查头的数量、脚的数量是否合法(如脚的数量必须是偶数,且不能小于 2 * heads 或大于 4 * heads)。
  2. 方程求解:通过数学公式直接计算兔和鸡的数量:
    • 兔的数量 rabbits = (feet - 2 * heads) / 2
    • 鸡的数量 chickens = heads - rabbits
  3. 结果验证:确保鸡和兔的数量为非负整数,否则返回“无解”。

示例测试

console.log(solveChickenRabbit(10, 28)); // { chickens: 6, rabbits: 4 }
console.log(solveChickenRabbit(5, 16));  // { chickens: 2, rabbits: 3 }
console.log(solveChickenRabbit(7, 20));  // { chickens: 4, rabbits: 3 }
console.log(solveChickenRabbit(3, 10));  // "无解或输入不合法"

注意事项

  • 如果脚的数量不满足逻辑条件(如脚数小于最小可能值 2 * heads 或大于最大可能值 4 * heads),会返回“无解”。
  • 脚的数量必须是偶数,否则无解。

标签: js
分享给朋友:

相关文章

js 实现vue模板

js 实现vue模板

实现 Vue 模板的 JavaScript 方法 通过原生 JavaScript 可以实现类似 Vue 的模板渲染功能,主要包括数据绑定、指令处理和模板解析。以下是核心实现思路: 数据绑定与…

js实现驼峰

js实现驼峰

实现驼峰命名的几种方法 使用正则表达式和字符串替换 通过正则表达式匹配字符串中的特定模式(如下划线或短横线),并将其后的字母转换为大写,同时移除分隔符。 function toCamelCase(s…

js实现选题

js实现选题

实现选题功能的JavaScript方法 基础实现方案 使用数组存储选项,通过随机索引选取: const options = ['选项A', '选项B', '选项C', '选项D']; const r…

js实现图片

js实现图片

图片加载与显示 在JavaScript中,可以通过Image对象动态加载图片。创建实例后设置src属性触发加载,通过onload回调处理加载完成后的操作: const img = new Ima…

js实现搜索

js实现搜索

实现搜索功能的方法 在JavaScript中实现搜索功能可以通过多种方式完成,以下是几种常见的实现方法。 使用数组的filter方法 通过数组的filter方法可以筛选出符合条件的数据项。假设有一个…

js验证码的实现

js验证码的实现

验证码的基本实现原理 验证码(CAPTCHA)的核心目标是区分人类用户和自动化程序。JavaScript可用于生成或验证客户端验证码,但需注意纯前端验证可能被绕过,通常需结合后端验证。 纯前端验证码…