数学杂题 鸡兔同笼
来源:互联网 发布:索尼手机更新软件 编辑:程序博客网 时间:2024/06/05 07:54
数学杂题 鸡兔同笼
题目
本题没有链接!(校内局域网OJ)
题目描述
浙江工商大学校园里绿树成荫,环境非常舒适,因此也引来一批动物朋友来此居住。
童心未泯的redraiment就经常带些碎面包什么的去广场喂鸽子和兔子,并和它们玩耍。一点也不像大学生,还是一副老不正经的样子,呵呵。
随着鸽子和兔子数目的增多,redraiment带的那点食物已经不够它们瓜分了。为了能让自己的好朋友吃的饱饱的,redraiment决定统计一下有多少只鸽子和有多少只兔子,以便带来足够的食物。一、二、三、四、五…他开始数了。
现在,他已经知道有这些鸽子和兔子一共有n个头和m只脚。请你帮他写个程序计算一下一共有多少只鸽子和兔子。
输入
输入包括多组数据。 每行包括2个数据:n、m(代表上面题目中提到的意思1≤n, m≤230)。 n、m都是整数。 输入以0 0作为结束。
输出
每组数据的输出都只有一行,分别是鸽子的数量和兔子数量。 如果输入的测试数据不能求得结果,那肯定是redraiment这个马大哈数错了,就输出”Error”提示他。
考点
- 数学
思路
非常基础的鸡兔同笼问题——即假设全都是鸡,再把与实际的差求出来,除上两个种类相差的脚数即可
注意出错的可能情况:
- 鸡/兔数是小数
- 全都是鸡都比期望大
- 全都是兔都比期望大
- 太多兔子了
代码
#include<iostream>#include<cstdio>using namespace std;int main(){ int tothead; int totfoot; int tmpfoot; int chicken,rabbit; ios::sync_with_stdio(false); while(cin>>tothead>>totfoot and not(tothead==0 and totfoot==0)) { tmpfoot=tothead*2;//全部是鸡 tmpfoot=totfoot-tmpfoot;//鸡换成兔子的腿数 if(tmpfoot<0 or tmpfoot%2!=0) { cout<<"Error"<<endl; } else { rabbit=tmpfoot/2;//几个兔子 chicken=tothead-rabbit;//几个鸡 if(rabbit*4+chicken*2!=totfoot)//太多脚了 { cout<<"Error"<<endl; } else if(rabbit>tothead or rabbit<0) { cout<<"Error"<<endl; } else if(chicken>tothead or chicken<0) { cout<<"Error"<<endl; } else { cout<<chicken<<" "<<rabbit<<endl; } } }}
阅读全文
0 0
- 数学杂题 鸡兔同笼
- 趣味数学-鸡兔同笼算法
- [从头学数学] 第73节 数学广角──鸡兔同笼
- 鸡兔同笼
- 鸡兔同笼
- 鸡兔同笼
- 鸡兔同笼
- 鸡兔同笼
- 鸡兔同笼
- 鸡兔同笼
- 鸡兔同笼
- 鸡兔同笼
- 鸡兔同笼
- 鸡兔同笼
- 鸡兔同笼
- 鸡兔同笼
- 鸡兔同笼
- 鸡兔同笼
- 2017/8/25
- [OpenGL] 网格细分算法 Loop Subdivision
- 数据结构——线性结构(1)——顺序栈的实现
- [翻译]扫描线算法(Line Sweep Algorithm)(2)
- 训练总结8.25
- 数学杂题 鸡兔同笼
- 创建视图
- virt-install命令参数
- HDU6180 Schedule
- 编写一个程序,将d:\java目录下的所有.java文件复制到d:\jad目录下,并将原来文件的扩展名从.java改为.jad
- win7下启动activeMQ服务
- Java 多线程间的通信 等待唤醒
- csdn图谱简介
- Android自动化测试appium for java环境搭建实操