【每周一练】旨在通过对信竞赛经典真题进行练习讲解,帮助大家进步,小伙伴们可以把讲解作为参考,也可以在留言中整理、分享自己的解题思路和做题心得。【问题描述】
利用 input() 语句先后输入两个正整数,分别代表鸡兔的头和脚的总数。其中,兔有四只脚,鸡有两只脚,都只有一个头。
请编写 Python 代码计算出兔和鸡的数量,输出结果形如“Chicken=15 Rabbit=5”,如没有解则输出“No solution!”。
【输入描述】
分两次输入,第一次输入头的总数,回车后输入脚的总数。
特别提示:常规程序中,输入时好习惯是有提示。考试时由于系统限定,输入时所有input()函数不可有提示信息。
【输出描述】
如果有解,则输出鸡和兔分别数量,形如“Chicken=15 Rabbit=5”Rabbit之前有 1 个英文半角空格,C 和 R 都为大写。
如没有解则输出“No solution!”,No 之后有 1 个英文半角空格,solution 之后有英文半角叹号。
特别提示:注意字母大小写以及空格、叹号等匹配一致。
【样例输入 1】
2050
【样例输出 1】
Chicken=15 Rabbit=5
【样例输入 2】
2030
【样例输出 2】
No solution!
解题思路:
输入处理:读取两个整数,分别代表头数和脚数
方程建立:
鸡兔总数为头数:c + r = head
脚的总数为:2c + 4r = foot
求解方法:
有效性检查:
解必须是整数
解必须是非负数
脚数必须是偶数(因为每只动物都有偶数只脚)
输出格式:严格按照要求的格式输出
参考程序:
注意:仅供参考,考生可以自行设计,结果符合题意即可。
方法一:
head = int(input())foot = int(input())i = 0num = 0while i <= head:if i * 2 + (head - i) * 4 == foot: print("Chicken={} Rabbit={}".format(i, head - i)) num += 1 i += 1if num == 0: print("No solution!")
方法二:
head = int(input())foot = int(input())R = (foot - 2 * head) / 2C = head - Rif R < 0or int(R) != R: print('No solution!')else: C = int(C) R = int(R) print("Chicken={} Rabbit={}".format(C, R))
想要踏上信竞赛道吗?
想要通过信竞赛道通向重点高中、
985高校吗?
机器人/代码编程课体验!让更多的孩子得到更好的逻辑思维、信息技术教育!注:本文所用字体或素材均已获得图怪兽官方商用授权,如有疑问请联系我方。
校区地址:
联系电话:
13602299249 跳跳老师/蔡蔡老师