鸡兔同笼逻辑分析
2024-06-12 21:38:25
发布于:辽宁
89阅读
0回复
0点赞
鸡兔同笼逻辑分析(不会鸡兔同笼的同学有福啦!!!)
这次给大家分析一下鸡兔同笼的逻辑,很多同学还停留在枚举暴力解的阶层上(暴力也是一种美),但告诉同学,数学也会考鸡兔同笼的,所以不要想着暴力定天下啦!
废话少说,直接开讲
首先,题目一般会告诉我们总头数和总脚数,而且会有同笼对象(例如鸡兔同笼的同笼对象就是鸡和兔,这里以鸡和兔为同笼对象),接下来用一个图来表示:
(这里以#为脚) 假设为5头,14脚
已知一只鸡有2脚,一只兔有4脚。
[假设都为鸡:]
## ## ## ## ##
[此时有10只脚,可题目说有14只脚,怎么办呢?别忘了我们还有兔]
[这是可能会有同学说:啊,那兔有4只脚,直接除以4就好了,于是便自信的写出了(14-10)/4]
[于是:]
## ## ## ## ## ####
[但是,由于我们把所有头都设为了鸡,这是再加入兔,头数就变多了,怎么办呢]
[我们只需要换一个思路,既然都设好了,那为什么不处于多出的部分呢,我们只需要除以]
[鸡的脚数与兔的脚数之差,就可以算出多余的部分,用多出的总脚数/多出的单个脚数,]
[就可以求出兔数了,用总头数减去 兔数就是鸡数了]
[即:]
设都为鸡: ## ## ## ## ## 10只
剩余的脚: ## ## 14-10 = 4只
↓
[将剩余的脚数分发给鸡:]
设都为鸡: ## ## ## ## ## 10只
↑ ↑
剩余的脚: ## ## 分给兔
↓
[就会变成:] (兔) (兔) (鸡) (鸡)(鸡)
最后的样子: #### #### ## ## ##
[验算一下:2 * 4 + 3 * 2 = 14,没问题,然后就可以安心交卷啦,是不是很简单呢?]
最后,附上珍贵的代码:
#include <bits/stdc++.h>
using namespace std;
int main(){
int n,m; // 代表头数和脚数
cin >> n >> m;
int x = (m - n * 2) / 2; // 鸡的个数
int y = n - x; // 兔的脚数
cout << y << endl << x;
return 0;
}
给我一个大大的赞吧,你们的赞是我最大的制作动力~~
全部评论 3
👍
2024-09-17 来自 广东
0666
2024-08-18 来自 江苏
0顶
2024-06-12 来自 辽宁
0
有帮助,赞一个