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;
}/* 你的提交代码将被嵌在这里 */

这里有两种方法:

  1. 数学函数法( 不推荐)
    这里我们用数学公式来表示鸡兔的个数,最后通过判断公式中求解的值是否为整数来决定输出结果,今天我在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分)相关推荐

  1. 武汉理工大学c语言实验 编程解决鸡兔同笼问题,C语言程序设计实验指导

    本书是<C语言程序设计基础>(李民.钟钰.秦珀石主编)的配套实验教材.实验教材与理论教材相辅相成,采用边讲边练的方式,帮助读者切实提高编程能力.本书共分10章,第1章为C语言环境介绍.第2 ...

  2. python解决鸡兔同笼_Python解决鸡兔同笼问题的方法

    本文实例讲述了python解决鸡兔同笼问题的方法,分享给大家供大家参考.具体分析如下: 问题描述 一个笼子里面关了鸡和兔子(鸡有 2 只脚,兔子有 4 只脚,没有例外).已经知道了笼 子里面脚的总数 ...

  3. 鸡兔同笼问题的一些巧解

    问题 鸡兔同笼,鸡兔共有45只,兔的腿数比鸡的腿数多60条,问鸡和兔各有几只,不能用方程. 解法1 兔的腿数比鸡的腿数多 60 条,这 60 条多出来的腿是通过笼子里的 60 ÷4 = 15 只兔子贡 ...

  4. POJ 2750 鸡兔同笼

    参考自:https://www.cnblogs.com/ECJTUACM-873284962/p/6414781.html POJ 2750鸡兔同笼 总时间限制:1000ms 内存限制:65536kB ...

  5. java马克思手稿_java 循环嵌套解决一元,二元,三元方程(增长率,鸡兔同笼,马克思手稿)...

    一元方程: 2006年培养学员8万人,每年增长25%,请问按此增长速度,到哪一年培训学员人数将达到20万人? int a=8; int year=2006; while (a<=20) { a= ...

  6. 7-290 鸡兔同笼 (10 分)

    7-290 鸡兔同笼 (10 分) 一个笼子里面关了鸡和兔子(鸡有2只脚,兔子有4只脚,没有例外).已经知道了笼子里面脚的总数a,问笼子里面至少有多少只动物,至多有多少只动物 输入格式: 第1行是测试 ...

  7. 7-293 鸡兔同笼 (10 分)

    7-293 鸡兔同笼 (10 分) 一个笼子里面关了鸡和兔子(鸡有2只脚,兔子有4只脚,没有例外).已经知道了笼子里面脚的总数a,问笼子里面至少有多少只动物,至多有多少只动物 输入格式: 第1行是测试 ...

  8. 利用计算机解决鸡兔同笼问题,利用极限思想解决复杂鸡兔同笼问题

    [导读] 中公事业单位为帮助各位考生顺利通过事业单位招聘考试!今天为大家带来数量关系:利用极限思想解决复杂鸡兔同笼问题. 在近些年的公考中,数量关系题目考察在越来越灵活的基础上出现了传统题型的回归,比 ...

  9. Bailian2750 鸡兔同笼【入门】

    2750:鸡兔同笼 总时间限制: 1000ms 内存限制: 65536kB 描述 一个笼子里面关了鸡和兔子(鸡有2只脚,兔子有4只脚,没有例外).已经知道了笼子里面脚的总数a,问笼子里面至少有多少只动 ...

  10. Bailian3237 鸡兔同笼【入门】

    鸡兔同笼 总时间限制: 1000ms 内存限制: 65536kB 描述 一个笼子里面关了鸡和兔子(鸡有2只脚,兔子有4只脚,没有例外).已经知道了笼子里面脚的总数a,问笼子里面至少有多少只动物,至多有 ...

最新文章

  1. qt下编写linux消息队列,C++11消息队列 + Qt线程池 + QRunnable执行任务简单模型
  2. 章节之外:makefile中的函数定义
  3. python语言入门u-[学习总结] python语言学习总结 (一)
  4. 听说蒂姆·库克来了?这和我们有什么关系!
  5. 2017年,Java程序猿10本经典好书推荐
  6. (十四)消息中间件MQ详解及四大MQ比较
  7. EMNLP'20最佳论文揭晓!八块肌肉=能打电话?!
  8. 飞鸽传书创造出自己的一片天吧
  9. springboot中配置文件使用2
  10. s3c6410烧写u-bootLinux
  11. 带权有向无环图的最短路径(使用拓扑排序的方法)
  12. web安全day9:5个实验实实在在学习windows域部署
  13. SpringBoot+Quartz实现动态可配定时任务(动态定时任务)
  14. 华为光伏usb适配器_华为P40无线充电手机壳拆解:1款配件补上22.5W无线快充
  15. 现代信号处理——自适应滤波器(LMS自适应滤波器)
  16. jquery中的ajax写法
  17. 征信不好的看过来:征信黑名单能洗白吗?
  18. 计算机控制面板 关机时间,怎么设置电脑的自动关机时间
  19. 【计算机网络】思科实验(3):使用三层交换机实现跨VLAN间的通信
  20. 百度网盘网页倍速播放视频的小技巧

热门文章

  1. 阿里云操作系统——飞天(Apsaras)
  2. 【手游】手游行业专业相关知识储备
  3. 股票涨跌和买卖预测计算公式
  4. 常见地图服务(WMS、WFS、WCS、TMS、WMTS
  5. java duplicate_Duplicate spring bean id
  6. 银行业务分析(数据整合)
  7. 首发速看:智微JMS901双接口U盘成功量产,附量产工具软件+固件+教程分享
  8. wget php mirror 地址,使用wget命令镜像网站
  9. 搭建GTK+开发环境
  10. mysql amoeba_MySQL基于Amoeba实现读写分离