PTA6-1 鸡兔同笼问题 (20分)
6-1 鸡兔同笼问题 (20分)
孙子算经》记载:“今有雉兔同笼,上有三十五头,下有九十四足,问雉兔各几何?”
函数原型
int ChickenRabbit(int *chicken, int *rabbit, int head, int foot);
说明:head 和 foot 是头和脚的数量,chicken 和 rabbit 是指示鸡和兔数量的指针。若问题有解,则将鸡和兔的数量保存到 chicken 和 rabbit 所指示的变量中,函数值为1(真);否则不改变 chicken 和 rabbit 所指示的变量,函数值为0(假)。
#include <stdio.h>int ChickenRabbit(int *chicken, int *rabbit, int head, int foot);int main()
{int h, f, c, r;scanf("%d%d", &h, &f);if (ChickenRabbit(&c, &r, h, f)){printf("%d %d\n", c, r);}else{puts("None");}return 0;
}/* 你的提交代码将被嵌在这里 */
这里有两种方法:
- 数学函数法( 不推荐)
这里我们用数学公式来表示鸡兔的个数,最后通过判断公式中求解的值是否为整数来决定输出结果,今天我在PTA 的上机练习中就遇到了这种情况的问题(而老师给我的解释是要考虑的数学情况有很多),比如:
给定的头的个数不能比脚多;
当用公式求得的值为负值时便不能正常输出( 属于bug)
我写的代码如下:
int ChickenRabbit(int *chicken, int *rabbit, int head, int foot)
{int m,n;m=(foot-2*head)/2;//相当于数学公式中的运算,可以设m,n来表示n=head-m;if((foot-2*head)/2==(foot-2*head)*1.0/2)//判断公式计算的值是否为整数{*rabbit=m;*chicken=n;return 1;}else{ return 0;
}
}
2.循环遍历法
int ChickenRabbit(int *chicken, int *rabbit, int head, int foot)
{int i;for(i=0;i<head;i++)//与上面的区别在于是将兔的个数从0到head逐个试{if(2*i==(foot-2*head)){*rabbit=i;*chicken=head-i;break;} }if(i<=head)//另外需要考虑好是由break结束查值还是用<=head来查值return 1;elsereturn 0;}
PTA6-1 鸡兔同笼问题 (20分)相关推荐
- 武汉理工大学c语言实验 编程解决鸡兔同笼问题,C语言程序设计实验指导
本书是<C语言程序设计基础>(李民.钟钰.秦珀石主编)的配套实验教材.实验教材与理论教材相辅相成,采用边讲边练的方式,帮助读者切实提高编程能力.本书共分10章,第1章为C语言环境介绍.第2 ...
- python解决鸡兔同笼_Python解决鸡兔同笼问题的方法
本文实例讲述了python解决鸡兔同笼问题的方法,分享给大家供大家参考.具体分析如下: 问题描述 一个笼子里面关了鸡和兔子(鸡有 2 只脚,兔子有 4 只脚,没有例外).已经知道了笼 子里面脚的总数 ...
- 鸡兔同笼问题的一些巧解
问题 鸡兔同笼,鸡兔共有45只,兔的腿数比鸡的腿数多60条,问鸡和兔各有几只,不能用方程. 解法1 兔的腿数比鸡的腿数多 60 条,这 60 条多出来的腿是通过笼子里的 60 ÷4 = 15 只兔子贡 ...
- POJ 2750 鸡兔同笼
参考自:https://www.cnblogs.com/ECJTUACM-873284962/p/6414781.html POJ 2750鸡兔同笼 总时间限制:1000ms 内存限制:65536kB ...
- java马克思手稿_java 循环嵌套解决一元,二元,三元方程(增长率,鸡兔同笼,马克思手稿)...
一元方程: 2006年培养学员8万人,每年增长25%,请问按此增长速度,到哪一年培训学员人数将达到20万人? int a=8; int year=2006; while (a<=20) { a= ...
- 7-290 鸡兔同笼 (10 分)
7-290 鸡兔同笼 (10 分) 一个笼子里面关了鸡和兔子(鸡有2只脚,兔子有4只脚,没有例外).已经知道了笼子里面脚的总数a,问笼子里面至少有多少只动物,至多有多少只动物 输入格式: 第1行是测试 ...
- 7-293 鸡兔同笼 (10 分)
7-293 鸡兔同笼 (10 分) 一个笼子里面关了鸡和兔子(鸡有2只脚,兔子有4只脚,没有例外).已经知道了笼子里面脚的总数a,问笼子里面至少有多少只动物,至多有多少只动物 输入格式: 第1行是测试 ...
- 利用计算机解决鸡兔同笼问题,利用极限思想解决复杂鸡兔同笼问题
[导读] 中公事业单位为帮助各位考生顺利通过事业单位招聘考试!今天为大家带来数量关系:利用极限思想解决复杂鸡兔同笼问题. 在近些年的公考中,数量关系题目考察在越来越灵活的基础上出现了传统题型的回归,比 ...
- Bailian2750 鸡兔同笼【入门】
2750:鸡兔同笼 总时间限制: 1000ms 内存限制: 65536kB 描述 一个笼子里面关了鸡和兔子(鸡有2只脚,兔子有4只脚,没有例外).已经知道了笼子里面脚的总数a,问笼子里面至少有多少只动 ...
- Bailian3237 鸡兔同笼【入门】
鸡兔同笼 总时间限制: 1000ms 内存限制: 65536kB 描述 一个笼子里面关了鸡和兔子(鸡有2只脚,兔子有4只脚,没有例外).已经知道了笼子里面脚的总数a,问笼子里面至少有多少只动物,至多有 ...
最新文章
- qt下编写linux消息队列,C++11消息队列 + Qt线程池 + QRunnable执行任务简单模型
- 章节之外:makefile中的函数定义
- python语言入门u-[学习总结] python语言学习总结 (一)
- 听说蒂姆·库克来了?这和我们有什么关系!
- 2017年,Java程序猿10本经典好书推荐
- (十四)消息中间件MQ详解及四大MQ比较
- EMNLP'20最佳论文揭晓!八块肌肉=能打电话?!
- 飞鸽传书创造出自己的一片天吧
- springboot中配置文件使用2
- s3c6410烧写u-bootLinux
- 带权有向无环图的最短路径(使用拓扑排序的方法)
- web安全day9:5个实验实实在在学习windows域部署
- SpringBoot+Quartz实现动态可配定时任务(动态定时任务)
- 华为光伏usb适配器_华为P40无线充电手机壳拆解:1款配件补上22.5W无线快充
- 现代信号处理——自适应滤波器(LMS自适应滤波器)
- jquery中的ajax写法
- 征信不好的看过来:征信黑名单能洗白吗?
- 计算机控制面板 关机时间,怎么设置电脑的自动关机时间
- 【计算机网络】思科实验(3):使用三层交换机实现跨VLAN间的通信
- 百度网盘网页倍速播放视频的小技巧