avaScript——解决雉兔同笼问题

发布时间 2023-07-07 08:25:56作者: 四字碎发

javaScript——解决雉兔同笼问题、

 

方法一:
题目描述:一个笼子里有若干只鸡和兔子,它们的总数量是n,总腿数是m。问笼子里有多少只鸡和兔子?

解题思路:设鸡的数量为x,兔子的数量为y,则有以下两个方程式:

x + y = n //方程1:鸡兔总数为n
2x + 4y = m //方程2:鸡兔总腿数为m

将方程1乘以2,得到2x + 2y = 2n,将其与方程2相减,得到2y = m - 2n,因此y = (m - 2n) / 2。

将y的值代入方程1,可得到x的值,即x = n - y。

 

function solve(n, m) {
  let y = (m - 2 * n) / 2;
  let x = n - y;
  if (y < 0 || x < 0 || y % 1 !== 0) { //判断无解情况
    console.log("无解");
  } else {
    console.log(`鸡的数量为${x},兔子的数量为${y}`);
  }
}
 
solve(10, 26);  //鸡的数量为4,兔子的数量为6
solve(5, 10);   //鸡的数量为0,兔子的数量为2
solve(3, 10);

  

方法二:(抬脚法)
鸡抬一只脚,兔抬两只脚就行了.

比如:鸡兔同笼,共23头,66只脚,问鸡兔各几只?

鸡抬一只脚,兔抬两只脚后,刚好抬了脚总数的一半,还剩下一半,即33只脚.这时脚的只数和头的总数比较,就多了10只.鸡的脚和头是对应的,兔的脚比头多一倍.所以多了的数就是兔的只数,剩下的13只就是鸡了.

//鸡兔同笼,头30,足80
console.log((80-30*2)/2)//兔子的个数