当前位置:首页 > 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实现轮播

js实现轮播

实现基础轮播效果 使用HTML结构创建轮播容器和图片元素: <div class="carousel"> <div class="carousel-inner">…

css3结合js制作

css3结合js制作

CSS3 结合 JavaScript 制作动态效果 CSS3 和 JavaScript 结合可以实现丰富的动态效果,包括动画、交互和响应式设计。以下是几种常见的实现方式: CSS3 动画与 Java…

js 实现vue模板

js 实现vue模板

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

js实现dh

js实现dh

JavaScript 实现 DH(Diffie-Hellman)密钥交换 Diffie-Hellman(DH)密钥交换是一种安全协议,允许双方在不安全的通信信道上建立一个共享密钥。以下是如何在 Jav…

js实现图

js实现图

JavaScript 实现图的常用方法 在 JavaScript 中,图(Graph)可以通过多种方式实现,常见的包括邻接表(Adjacency List)和邻接矩阵(Adjacency Matrix…

js实现投球

js实现投球

实现投球动画的基本思路 使用JavaScript和CSS动画结合的方式模拟投球效果。核心是通过改变元素的位置、旋转和缩放属性,配合定时器或CSS过渡实现平滑动画。 创建基础HTML结构 <di…