当前位置:   article > 正文

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

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

第1关:鸡兔同笼

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

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

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

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

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

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

第2关:物不知数

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

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

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

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

输入:
10
输出:
No solution!

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

第3关:二鼠打洞

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

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

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

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

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

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

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

  1. """有一堵十尺厚的墙,两只老鼠从两边向中间打洞。大老鼠第一天打洞一尺,小老鼠也是打洞一尺。
  2. 大老鼠每天的打洞进度是前一天的一倍,小老鼠每天的进度是前一天的一半。计算并输出它们几天可以相逢,
  3. 相逢时各打了多少尺。
  4. 输入格式:输入1 个整数,代表墙的厚度,单位为尺
  5. 输出格式:
  6. 第一行输出1 个整数,表示相遇时所需的天数
  7. 第二行输出2 个浮点数,分别为小鼠和大鼠打洞的距离,单位为尺,保留小数点后1 位数字。
  8. """
  9. wall = int(input()) #墙壁的厚度
  10. rat, mouse, day, time = 1, 1, 0, 1 #大鼠速度、小鼠速度、天数、当天工作时长(1表示工作一整天)
  11. distance_of_rat, distance_of_mouse = 0, 0 #大鼠路程、小鼠的路程
  12. while wall > 0:
  13. ################Begin#######################
  14. if day==0:
  15. day=day+1
  16. distance_of_rat=distance_of_rat+rat
  17. distance_of_mouse=distance_of_mouse+mouse
  18. elif 0<distance_of_rat+distance_of_mouse < wall:
  19. rat=rat*2
  20. mouse=mouse*1/2
  21. distance_of_rat=distance_of_rat+rat
  22. distance_of_mouse=distance_of_mouse+mouse
  23. day=day+1
  24. if distance_of_rat+distance_of_mouse>=wall:
  25. x=distance_of_rat+distance_of_mouse-wall
  26. x=x/(rat+mouse)
  27. distance_of_rat=distance_of_rat-rat*x
  28. distance_of_mouse=distance_of_mouse-mouse*x
  29. break
  30. ################End#######################
  31. print(day)
  32. print(round(distance_of_mouse, 1), round(distance_of_rat, 1)) #使用round函数来保留小数点后一位

第4关:宝塔上的琉璃灯

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

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

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

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

输入格式
本题没有输入。

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

输出:
x
x
xx
xx
xx
xx
xxx
xxx

  1. """有一座八层宝塔,每一层都有一些琉璃灯,每一层的灯数都是上一层的二倍,
  2. 已知共有765 盏琉璃灯,计算并输出每层各有多少盏琉璃灯。
  3. 输出为8行,每行都是一个正整数,从上往下数字依次增大,每个数字代表本层宝塔上的琉璃灯数目。
  4. """
  5. first = 1 #层数
  6. i=1
  7. s=0
  8. for i in range(100): #i代表第一层的灯数
  9. a=i
  10. for x in range(8):
  11. s=s + a
  12. a=a*2
  13. if s==765:
  14. x=0
  15. for x in range(8):
  16. print(i)
  17. i=i*2
  18. break
  19. else:
  20. s=0

第5关:李白买酒

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

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

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

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

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

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

输入输出示例
无。

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/代码探险家/article/detail/1006080
推荐阅读
相关标签
  

闽ICP备14008679号