第五周python作业

1、第4章-3 猴子吃桃问题

一只猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个;第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半加一个。到第N天早上想再吃时,见只剩下一个桃子了。问:第一天共摘了多少个桃子?
我的代码:
第五周python作业_第1张图片
数学问题:根据结果进行反推

2、第4章-4 验证“哥德巴赫猜想”

数学领域著名的“哥德巴赫猜想”的大致意思是:任何一个大于2的偶数总能表示为两个素数之和。比如:24=5+19,其中5和19都是素数。本实验的任务是设计一个程序,验证20亿以内的偶数都可以分解成两个素数之和。
我的代码:
第五周python作业_第2张图片
数学思维:想要找到最小的匹配素数,我第一反应是循环遍历,但为了防止超时,我选择将范围限定在最小的素数2到输入数的根号的范围内,忘记这个方法的名字了,但是隐约记得老师上课时好像讲过,做过练习题便把思路写了下来

3、第4章-5 求e的近似值

自然常数 e 可以用级数 1+1/1!+1/2!+⋯+1/n!+⋯ 来近似计算。本题要求对给定的非负整数 n,求该级数的前 n+1 项和。
我的代码:
第五周python作业_第3张图片

数学思维研究:
主要是考察如何用Python实现求级数吧,这个用循环就能解决,问题不大,但是在解题过程中我被一个问题卡住了,就是sum始终等于2.5左右,debug发现是cot的问题,一开始我把cot放在了j循环的里面,导致上一次循环得到的cot没有变回1,得到的数不准确,越来越小,把它提前到i循环开头即可。

4、第4章-6 输出前 n 个Fibonacci数

本题要求编写程序,输出菲波那契(Fibonacci)数列的前N项,每行输出5个,题目保证输出结果在长整型范围内。Fibonacci数列就是满足任一项数字是前两项的和(最开始两项均定义为1)的数列,例如:1,1,2,3,5,8,13,…。
我的代码:
第五周python作业_第4张图片
别人的代码:
第五周python作业_第5张图片

5、第4章-7 统计学生平均成绩与及格人数

本题要求编写程序,计算学生们的平均成绩,并统计及格(成绩不低于60分)的人数。题目保证输入与输出均在整型范围内。
我的代码:
第五周python作业_第6张图片
他人的代码:
第五周python作业_第7张图片
我学到了什么:
①在判断n是否为0的操作中,我知道了还可以使用exit()函数来取代if else 的判断,更加简洁

下面是收集到的exit的功能:

在很多类型的操作系统里,exit(0) 可以中断某个程序,而其中的数字参数则用来表示程序是否是碰到错误而中断。exit(1) 表示发生了错误,而 exit(0) 则表示程序是正常退出的。这和我们学的布尔逻辑 0==False 正好相反,不过你可以用不一样的数字表示不同的错误结果。比如你可以用exit(100) 来表示另一种和 exit(2)或 exit(1) 不同的错误。

②在判断有多少个学生是及格的时候,使用了lamber,很高级快捷实用,我以后也要多想到这方面的知识运用

6、第4章-8 求分数序列前N项和

本题要求编写程序,计算序列 2/1+3/2+5/3+8/5+… 的前N项之和。注意该序列从第2项起,每一项的分子是前一项分子与分母的和,分母是前一项的分子。

我的代码:
第五周python作业_第8张图片

数学思维:斐波那契数列的变式

7、第4章-9 查询水果价格

给定四种水果,分别是苹果(apple)、梨(pear)、桔子(orange)、葡萄(grape),单价分别对应为3.00元/公斤、2.50元/公斤、4.10元/公斤、10.20元/公斤。

我的代码:
第五周python作业_第9张图片
数学思维分析:
通过一个显示面板说明映射规则,然后通过算法来实现,很像日常生活中化繁就简的对计算机的印象,一开始我想使用字典来进行,但是发现这样做的话由于python内部没有switch/case循环结构,而且转换成list的话List内部储存的是键值对,不好提取,于是就想到了不用字典省去键名,只使用Price and list的方法进行运算和判断

8、第4章-10 最大公约数和最小公倍数

本题要求两个给定正整数的最大公约数和最小公倍数

我的代码:
第五周python作业_第10张图片
数学思维分析:
小学老师讲过,这种求最大公约数和最小公倍数的方法叫做辗转相除法,好像也叫做欧几里得算法。原理是两个整数的最大公约数等于其中较小的数和两数相除余数的最大公约数,这里在计算机体现为迭代,通过设计一个函数来完成

9、第4章-11 判断素数

判断一个给定的正整数是否素数

我的代码:
第五周python作业_第11张图片
数学思维分析:
考察素数的判断,在4-4已经有差不多的体型,便不必过多论述

10、第4章-12 求满足条件的斐波那契数

斐波那契数,亦称之为斐波那契数列,指的是这样一个数列:1、1、2、3、5、8、13、21、……,这个数列从第3项开始,每一项都等于前两项之和。求大于输入数的最小斐波那契数。

我的代码:
第五周python作业_第12张图片

11、第4章-13 求误差小于输入值的e的近似值

自然常数e可以用级数1+1/1!+1/2!+⋯+1/n!来近似计算。ei代表前i项求和。输入误差范围error,当
ei+1-ei

我的代码:
第五周python作业_第13张图片
他人的代码:
第五周python作业_第14张图片
Q:没看出我的代码有什么问题,可是返回是空,而且感觉第二个代码看起来很繁琐,不利于操作。如果有大神看见我的代码的问题的话可以评论区教导一下吗谢谢

12、第4章-13 求误差小于输入值的e的近似值
本题要求编写程序,输入10个字符,统计其中英文字母、空格或回车、数字字符和其他字符的个数。
我的代码:
第五周python作业_第15张图片

13、第4章-15 换硬币

将一笔零钱换成5分、2分和1分的硬币,要求每种硬币至少有一枚,有几种不同的换法?

我的代码:

他人的代码:
第五周python作业_第16张图片

反思:说老实话这道题真的难倒我了,大概是因为对排列组合的知识点落实地不够透彻吧,看到网上给出的代码真的一惊,我本想列出多种方法来寻找规律,但无奈能力有限看不出来,事实证明这些数据之间应该也没啥规律,但如果用计算机来批量处理数据,通过控制单个变量,再去转换别的变量是最后的结果符合条件,在很短的时间内就可以得到结果,真的很神奇!

14、第4章-16 jmu-python-判断是否构成三角形

输入三角形的三边,判断是否能构成三角形。若能构成输出yes,否则输出no。
我的代码:
第五周python作业_第17张图片
数学思维分析:
根据三角形三边之间的条件,任意两边应该大于第三边,我觉着“任意”又要用到循环,便使用了极限的思想:如果最小的两条边之和都可以大于第三边,那就意味着其他的可能性也都是成立的

15、第4章-17 水仙花数

水仙花数是指一个N位正整数(N≥3),它的每个位上的数字的N次幂之和等于它本身。 例如:153=1×1×1+5×5×5+3×3×3。

本题要求编写程序,计算所有N位水仙花数。

我的代码:
第五周python作业_第18张图片
他人的代码:
第五周python作业_第19张图片

你可能感兴趣的:(刷题,笔记,练习,算法)