湖北师范大学-Python程序设计-3.1 中国古代数学问题(project)

【Python123】鸡兔同笼 阅读详情
AI摘要

本教程通过Python编程解决中国古代数学问题,包括鸡兔同笼、物不知数等经典问题,并提供完整的代码实现。

第1关:鸡兔同笼

编程要求
根据提示,在右侧编辑区补充代码,计算并输出鸡和兔子的个数。

测试说明
平台会对你编写的代码进行测试:

测试输入:
输入为一行,以空格分隔的两个整数 h f,分别代表鸡兔的总头数和总脚数。

预期输出:
使用输入值进行计算,如有解,则输出:
有m只鸡,n只兔
如无解则输出
Data Error! 

输入:
35 94
输出:
有23只鸡,12只兔

"""
在同一行内输入用空格分隔的两个整数,代表头和脚的数量,计算并输出笼中各有多少只鸡和兔,
如无解则输出“Data Error!”,函数无返回值。
输入:35 94
输出:有23 只鸡,12 只兔
输入:100 5
输出:Data Error!
"""
head,feet = map(int, input().split()) #读入以空格分隔的两个整数,表示头和脚的数量
##############Begin#####################
x=1
flag=False
for x in range(head):
    if x*2+(head-x)*4==feet:
        print(f"有{x}只鸡,{head-x}只兔")
        flag=True
if flag==False:
    print("Data Error!")

##############End#####################

第2关:物不知数

编程要求
根据提示,在右侧编辑区补充代码,计算满足条件的物品个数并输出。

测试说明
平台会对你编写的代码进行测试:

输入格式:
输入为一个正整数 n,题目保证 0 < n <= 1000 。

输出格式:
输出不超过 n 且满足条件的物品个数 m,如果有多个解,则分行输出,每行一个解;如果无解则输出 No solution!。

输入:
10
输出:
No solution!

"""一些物品,不知道有多少个,3个3个数的话,还多出2个;5个5个数则多出3个;
7个7个数也会多出2个。输入一个正整数,从小到大依次输出所有不超过输入数字
且满足条件的物品数量,有多个答案时每行输出一个。
例如输入:200
输出:
23
128
"""
n = int(input())
##############Begin#####################
flag=False
for x in range(n+1):
    if x%3==2:
        if x%5==3:
            if x%7==2:
                print(x)
                flag=True
if flag==False:
    print("No solution!")

##############End#####################

第3关:二鼠打洞

编程要求
根据提示,在右侧编辑区补充代码,计算并输出它们几天可以打通,相逢时小鼠和大鼠各打了多少。

测试说明
平台会对你编写的代码进行测试:

输入格式
输入为 1 个整数 wall,代表墙的厚度,单位为尺。

输出格式
输出为两行
第一行输出 1 个整数,表示相遇时所需的天数。
第二行输出 2 个浮点数,依次为小鼠和大鼠打洞的距离,单位为尺,保留小数点后 1 位数字。
(提示:round(f,1)为浮点数 f 保留一位小数。)

示例 1
输入:
10
输出:
4
1.8 8.2

示例2
输入:
2
输出:
1
1 1

提示
最后一天可能不足一天便打通了

"""有一堵十尺厚的墙,两只老鼠从两边向中间打洞。大老鼠第一天打洞一尺,小老鼠也是打洞一尺。
大老鼠每天的打洞进度是前一天的一倍,小老鼠每天的进度是前一天的一半。计算并输出它们几天可以相逢,
相逢时各打了多少尺。
输入格式:输入1 个整数,代表墙的厚度,单位为尺
输出格式:
第一行输出1 个整数,表示相遇时所需的天数
第二行输出2 个浮点数,分别为小鼠和大鼠打洞的距离,单位为尺,保留小数点后1 位数字。
"""
wall = int(input()) #墙壁的厚度
rat, mouse, day, time = 1, 1, 0, 1 #大鼠速度、小鼠速度、天数、当天工作时长(1表示工作一整天)
distance_of_rat, distance_of_mouse = 0, 0 #大鼠路程、小鼠的路程
while wall > 0:
################Begin#######################
    if day==0:
        day=day+1
        distance_of_rat=distance_of_rat+rat
        distance_of_mouse=distance_of_mouse+mouse

    elif 0<distance_of_rat+distance_of_mouse < wall:
        rat=rat*2
        mouse=mouse*1/2
        distance_of_rat=distance_of_rat+rat
        distance_of_mouse=distance_of_mouse+mouse
        day=day+1
        if distance_of_rat+distance_of_mouse>=wall:
            x=distance_of_rat+distance_of_mouse-wall
            x=x/(rat+mouse)
            distance_of_rat=distance_of_rat-rat*x
            distance_of_mouse=distance_of_mouse-mouse*x
            break

################End#######################
print(day)
print(round(distance_of_mouse, 1), round(distance_of_rat, 1)) #使用round函数来保留小数点后一位

第4关:宝塔上的琉璃灯

任务描述
本关任务:编写一个宝塔上的琉璃灯的小程序。

相关知识
宝塔上的琉璃灯
问题描述:
有一座八层宝塔,每一层都有一些琉璃灯,每一层的灯数都是上一层的二倍,已知共有 765 盏琉璃灯,计算并输出每层各有多少盏琉璃灯。

编程要求
编写一个宝塔上的琉璃灯的小程序,计算并输出每层各有多少盏琉璃灯。

测试说明
平台会对你编写的代码进行测试:

输入格式
本题没有输入。

输出格式
输出为 8 行
每行都是一个正整数,从上往下数字依次增大,每个数字代表本层宝塔上的琉璃灯数目。

输出:
x
x
xx
xx
xx
xx
xxx
xxx

"""有一座八层宝塔,每一层都有一些琉璃灯,每一层的灯数都是上一层的二倍,
已知共有765 盏琉璃灯,计算并输出每层各有多少盏琉璃灯。
输出为8行,每行都是一个正整数,从上往下数字依次增大,每个数字代表本层宝塔上的琉璃灯数目。
"""
first = 1 #层数
i=1
s=0

for i in range(100):  #i代表第一层的灯数
    a=i
    for x in range(8):
        s=s + a
        a=a*2
    if s==765:
        x=0
        for x in range(8):
            print(i)
            i=i*2
        break
    else:
        s=0

第5关:李白买酒

任务描述
本关任务:编写一个计算李白壶中有多少酒的小程序。

相关知识
李白买酒
诗仙李白,一生好酒。一天,他提着酒壶,从家里出来,酒壶中有酒若干,他边走边唱:
无事街上走,
提壶去买酒。
遇店加一倍,
见花喝一斗。
五遇店和花,
喝光壶中酒!
请你计算并输出壶中原有酒几斗?
(顺序交替遇到店和花)

小知识:
唐朝时,一斗酒的斗所采用的度量是小斗,也就是4斤,当时一斤取值范围大约在500多到600克左右,换算一下可知唐朝一斗酒的重量取值范围在2000克到2400克左右。

编程要求
编写一个李白买酒的小程序,要求使用循环来计算,不允许使用幂函数。 

测试说明
输入格式:
本题没有输入。

输出格式:
一个浮点数 f,表示李白的酒壶原来有 f 斗酒。

输入输出示例
无。

"""大诗人李白,提着酒壶,从家里出来,酒壶中有酒若干。他边走边唱:无事街上走,提壶去买酒,
遇店加一倍,见花喝一斗,五遇店和花,喝光壶中酒,计算并输出壶中原有酒几斗?
"""
#解题思路:让李白按路线逆向走一遍
wine =0  #最后酒壶空了
################Begin#################
#f=0  #遇花的次数
#room=0  #遇店的次数
#for f in range(5):
#    for wine in range(50):
#        s=(f+wine)-room*(5-f)*2
#        if s==0:
#           break
for i in range(5):
    #遇到鲜花
    wine = wine +1
    #遇到酒店
    wine = wine / 2
    
################End#################
print(wine) #原来有多少斗酒

湖北师范大学-Python程序设计-3.3 计算圆周率(project) 第1关:割圆法 编程要求 根据提示,在右侧编辑区补充代码,编程实现割圆法计算圆周率,输出在正六边形基础上分割n次时得到多边形的边数、圆周率值以及math库中的圆周率值。 测试说明 平台会对你编写的代码进行测试: 输入格式 输入为一行,一个正整数n ,表示在内接正六边形的基础上割圆的次数。 输出格式 输出为两行,第一行输出在内接正六边形基础上再次分隔n次,分隔得到的正多边形的边数m,以及割圆法计算得到的圆周率pi(保留六位小数);第二行输出math库里的pi值(保留六位小数)。 具体输出格式见示例。 阅读详情

相关推荐

Python学习25:中国古代数学问题——李白买酒(python123)

诗仙李白,一生好酒。一天,他提着酒壶,从家里出来,酒壶中有酒若干。他边走边唱:无事街上走,提壶去买酒,遇店加一倍,见花喝一斗,五遇店和花,喝光壶中酒,计算并输出壶中原有酒几斗?要求使用循环来计算,不允许使用幂函数。一个整数n,表示李白的酒壶原来有n斗酒。

weixin_60530224的博客 1万+

Python学习38:凯撒密码——解密

根据潜伏的特工传回的消息,知道这份情报的明文中有一个单词是“question”,且采用的是恺撒加密的方法,偏移量未知。凯撒加密方法可以依据移位的不同产生新的变化,如将每个字母左19位,就产生这样一个明密对照表(以大写字母为例):‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬。输入为一行,一份新截获的密文字符串s1。

weixin_60530224的博客 4681

3.1 中国古代数学问题(project)

大鼠日一尺,小鼠亦一尺。请编一个程序,用户在同一行内输入两个整数,代表头和脚的数量,编程计算笼中各有多少只鸡和兔(假设鸡和兔都正常,无残疾),如无解则输出`“Data Error!意思是说有一些物品,不知道有多少个,3 个 3 个数的话,还多出 2 个;有一座八层宝塔,每一层都有一些琉璃灯,每一层的灯数都是上一层的二倍,已知共有 765 盏琉璃灯,计算并输出每层各有多少盏琉璃灯。大概的意思是:有若干只鸡兔同在一个笼子里,从上面数,有 35 个头,从下面数,有 94 只脚,问笼中各有多少只鸡和兔?

Junds0的博客 2902

学校头歌作业3_1中国古代数学问题(头歌作业[Python])

在优快云上补充前几期的内容。

counting_stars1的博客 1万+

educoder实训——流程控制【2】

educoder python实训代码

qq_41234663的博客 838

从零开始:EAS2+Elmo+Maxon电机调试全流程(含电流环优化技巧)

本文详细解析了从零开始搭建基于EAS2软件、Elmo驱动器和Maxon电机的运动控制系统的全流程。内容涵盖硬件连接规范、EAS2基础配置、核心的电流环模型辨识与手动优化技巧,以及速度环、位置环的搭建与调试策略,旨在帮助工程师构建稳定、高性能的伺服控制核心。

i0j1k2l3m的博客 502

湖北师范大学-Python程序设计-3.5 鸡兔同笼(project)

请编一个程序,用户在同一行内输入两个整数,代表两个笼中全部鸡和兔的头和脚的数量,编程计算两笼中各有多少只鸡和兔以及两笼中共有多少鸡和兔(假设鸡和兔都正常,无残疾)。请编一个程序,用户在同一行内输入两个整数,代表头和脚的数量,编程计算笼中各有多少只鸡和兔(假设鸡和兔都正常,无残疾)。a, b = map(int, input().split(',')) # 将输入的以逗号分隔的两个值,转换为整数后命名为a和b。有若干只鸡兔同在一个笼子里,从上面数,有35个头,从下面数,有94只脚,问笼中各有多少只鸡和兔?

柠檬喝汽水的博客 997

利用 Docker Distribution 搭建私有的 Docker Registry

1、拓扑

weixin_44983653的博客 1067

湖北师范大学-Python程序设计-4.2 自定义数学函数(project)

根据提示,在右侧编辑器补充代码,并调用自定义的 factorial() 函数计算并输出输入数据的阶乘小程序。根据提示,在右侧编辑器补充代码,调用自定义的 floor() 函数计算并输出数字的下舍整数的小程序。根据提示,在右侧编辑器补充代码,调用自定义的 ceil() 函数计算并输出不小于输入值的最小整数。根据提示,在右侧编辑器补充代码,通过调用自定义的lcm()函数计算并输出两数的最小公倍数数值。根据提示,在右侧编辑器补充代码,通过调用自定义的gcd()函数计算并输出两个数的最大公约数。

柠檬喝汽水的博客 1272

手把手教你用STM32CubeMX和HAL库驱动DW3000:从SPI配置到第一个测距Demo

本文详细介绍了如何使用STM32CubeMX和HAL库驱动DW3000 UWB定位通信模块,从SPI配置到实现厘米级测距Demo的全过程。涵盖硬件连接、SPI通信调试、驱动移植及双向测距(TWR)算法实现,帮助开发者快速掌握UWB高精度定位技术,适用于仓储物流、智能家居等场景。

weixin_27038245的博客 485

海康威视SADP SDK实战:5分钟搞定局域网设备搜索(附C++代码示例)

本文详细解析了海康威视SADP SDK在局域网设备搜索中的高效应用,通过C++代码示例展示如何快速实现设备发现与信息获取。SADP协议支持全面设备信息采集和实时状态更新,适用于智能安防和物联网管理场景,帮助开发者5分钟内完成设备搜索功能集成。

rum55的博客 874

Python趣味编程3则:李白买酒、猴子吃桃、宝塔上的琉璃灯

1、李白买酒 问题描述: 李白街上走,提壶去买酒。遇店加一倍,见花喝一斗。店不相邻开,花不成双长。三遇店和花,喝光壶中酒。请问此壶中,原有多少酒? 简单分析: 题目中加一倍是指再购买和壶中酒同样数量的酒,喝一斗是指喝掉壶中的一斗酒。根据描述,李白应该是先后遇到了酒店、鲜花、酒店、鲜花、酒店、鲜花,最后正好把酒喝完。 要计算酒壶中原有多少酒,可以从后向前倒推,最后喝完为0,往前遇到鲜花...

董付国的Python专栏 1万+

ESP32-C61 eFuse控制器深度解析:寄存器架构与安全烧写实践

eFuse(电子熔丝)是嵌入式芯片实现硬件级不可逆配置与信任根构建的核心物理机制,其本质是通过电学编程固化关键安全参数。原理上依赖熔丝单元的单向导通/断开特性,结合Reed-Solomon纠错、多级写保护和时序可控编程,保障数据在宽温域与工艺偏差下的高可靠性。技术价值在于为Secure Boot、Flash加密、密钥隔离等安全功能提供可信锚点,支撑从启动到运行的全链路防护。典型应用场景涵盖物联网设备量产烧录、安全启动使能、MAC地址固化及抗DPA密码运算配置。本文聚焦ESP32-C61平台,深入解析其eFu

weixin_42589700的博客 123

python中国古代数学问题——二鼠打洞

python中国古代数学问题——二鼠打洞

Ethereal_tl的博客 1万+

拆解歌尔2718硅麦:2.75mm超小封装背后的MEMS技术解析

本文深度解析歌尔2718硅麦的2.75mm超小封装技术,探讨MEMS麦克风在微型化过程中的声学性能与结构可靠性平衡。通过ASIC芯片堆叠、纳米级应力控制等创新技术,歌尔2718在TWS耳机和智能手机中实现卓越性能,同时克服微型化带来的声学挑战。

weixin_28292761的博客 610

MediaPipe 教程:从安装到应用-全网最全

MediaPipe是Google推出的开源框架,专为构建机器学习管道设计,可以高效处理视频、音频等时间序列数据。本文教程从安装到应用逐步讲解: 安装步骤简单,只需通过pip安装mediapipe包并验证版本; 重点演示人体姿态检测功能,可识别33个身体关键点; 提供基础代码实现,包括视频捕获、关键点检测与可视化; 强调模块化开发,将功能封装成类以提高代码复用性。 教程适合初学者,通过清晰指引和实用代码示例,帮助快速实现计算机视觉应用。

FJN110的博客 1563

宝塔上的琉璃塔

我的想法是第二层是2,第三层是4,第四层8....然后依次,结果不对,看了一些大佬的代码运行出来是3,6,12...然后就相当于投机取巧,令初始值为3,但更详细的思路也还不理解。行,每行都是一个正整数,从上往下数字依次增大,每个数字代表本层宝塔上的琉璃灯数目。有一座八层宝塔,每一层都有一些琉璃灯,每一层的灯数都是上一层的二倍,已知共有。编写一个宝塔上的琉璃灯的小程序,计算并输出每层各有多少盏琉璃灯。盏琉璃灯,计算并输出每层各有多少盏琉璃灯。本关任务:编写一个宝塔上的琉璃灯的小程序。输入格式 本题没有输入。

zhang_dengyu的博客 3096

把 ABAP 经验装进 GitHub Copilot 的按需大脑,Agent Skills 如何改变 ABAP 开发

2026 年 8 月,SAP Community 上出现了一次很有代表性的 ABAP 实验。开发者把标准 Flight Model 里的复制成自己的测试类,删除原有 ABAP Unit Test,再让 GitHub Copilot Agent 为方法重新生成测试代码。真正有意思的地方并不是 Copilot 会不会写,而是开发者给 Copilot 准备了两个专门的 Agent Skills,一个负责 ABAP Unit Test 的通用规则,一个负责 ABAP Test Double Framework。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 155

宝塔上的琉璃灯(for循环试炼)

我的 Python.color() (Python 色彩打印控制)_python color。(本篇笔记于2022-02-28 22:46:21首次发布,最后修改于2022-03-03 10:30:03)

m0_57158496的博客 5010

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

中国古代数学问题

Python中国古代数学问题

weixin_61494821的博客 1298

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Day 7 python练习题

1.公鸡每只 5 元,母鸡每只 3 元,小鸡 3 只一元,现要求用 100 元钱买 100 只鸡(三种类型的鸡都要买),问公鸡、母鸡、小鸡各买几只?游戏开始,初始状态下用户和电脑都有 100 分,赢一局+10 分,输一局-10 分。当用户为 200 分时,游戏结束,提示游戏结束,赢得比赛、每轮比赛都输出当前的分数。以公鸡为突破点,公鸡 5 元一只,100 元最多只能买 20 只,猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。设公鸡买了 x 只,母鸡买了 y 只,小鸡买了 z 只。

m0_59354113的博客 900

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

研一Python基础课程第三周课后习题分享(上)(含源代码)

研一Python基础课程第三周课后习题分享(上)(含源代码)

wzk4869的博客 5602

Python学习24:中国古代数学问题——二鼠打洞

第二行输出2个浮点数,分别为小鼠和大鼠打洞的距离,单位为尺,保留小数点后1位数字。《九章算术》的“盈不足篇”里有一个很有意思的老鼠打洞问题。原文是这么说的:今有垣厚十尺,两鼠对穿。大鼠日一尺,小鼠亦一尺。这道题的意思是:有一堵十尺厚的墙,两只老鼠从两边向中间打洞。大老鼠第一天打一尺,小老鼠也是一尺。大老鼠每天的打洞进度是前一天的一倍,小老鼠每天的进度是前一天的一半。问它们几天可以相逢,相逢时各打了多少。请编程求此题的解,要求使用循环来完成,不允许使用幂运算。输入为1个整数wall,代表墙的厚度,单位为尺。

weixin_60530224的博客 4881

python 解决百钱买百鸡算数问题

题目 :我国古代数学家张丘建在《算经》中提出了一个著名的数学问题:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何? for jw in range( 1,20): for jm in range (1, 33): jc=0 jc =100-jw-jm if( jw*5 +jm*3 + jc*(1/3)==100 & jw+jm+jc==100 ):

浮萍的博客 1万+

python老鼠打洞问题

老鼠打洞问题 描述: 有一堵十尺厚的墙,两只老鼠从两边向中间打洞。大老鼠第一天打一尺,小老鼠也是一尺。大老鼠每天的打洞进度是前一天的一倍,小老鼠每天的进度是前一天的一半。问它们几天可以相逢,相逢时各打了多少。‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬ (注:本题禁止使用幂运算)‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬

joy的博客 1万+

二鼠打洞问题

今有垣厚十尺,两鼠对穿。大鼠日一尺,小鼠亦一尺。大鼠日自倍,小鼠日自半。问:何日相逢?各穿几何?

red2brick的博客 2300
上一篇: 湖北师范大学-Python程序设计-流程控制自学引导
下一篇: 湖北师范大学-Python程序设计-3.2 个人所得税计算器(project)
汽水爆炸
博客等级 码龄4年 1903粉丝 41原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值