10 2016 档案
摘要:本题来自 Project Euler 第12题:https://projecteuler.net/problem=12 所谓“三角形数”,指的是自然数相加后的和,第n个三角形数即是从1开始的n个自然数相加后的和。例如:第5个三角形数就是 1+2+3+4+5=15。而15这个数字拥有的所有因子为:1、
阅读全文
摘要:本题来自 Project Euler 第11题:https://projecteuler.net/problem=11 就是有个 20 * 20 的数字网格,求任意直线方向(横、竖、斜)4个数字相乘最大的乘积。 做完这一题,深深感觉到写代码真是体力劳动…… 话说,把 n1-n20 放进 lst 列表
阅读全文
摘要:本题来自 Project Euler 第10题:https://projecteuler.net/problem=10 又是一道求解素数的题目。看来,只要能找到判断素数的最佳方法,就能解决很多问题啊。 本题沿用了之前的素数判断函数。不知道有没有优化的版本,能大幅压缩计算时间啊……
阅读全文
摘要:本题来自 Project Euler 第9题:https://projecteuler.net/problem=9 这题若是想清楚了,其实是相当简单,无非是找出各种 a+b+c=1000 的组合,然后验证 a**2 + b**2 = c**2 就行了。遍历范围方面,因为 a<b<c,最小的 a 最大
阅读全文
摘要:本题来自 Project Euler 第8题:https://projecteuler.net/problem=8 有一个 1000 位的数字,任意选取相邻的 13 个数字相乘,求其中最大的乘积。 老实说,要找出这个最大的乘积并不难,遍历一下就好。但——1000位的数字?放在 PyCharm 里根本
阅读全文
摘要:本题来自 Project Euler 第7题:https://projecteuler.net/problem=7 求解第 10001 个素数。 上述代码的思路其实挺简单:首先自定义一个函数,用来判断某个数字是否为素数。之后从数字1开始判断,只要是素数,就放进 lst 列表,直到 len(lst)
阅读全文
摘要:本题来自 Project Euler 第6题:https://projecteuler.net/problem=6 这题纯粹是送分题,就是简单的加减法和乘方计算。应该没啥算法可言吧。。。
阅读全文
摘要:本题来自 Project Euler 第5题:https://projecteuler.net/problem=5 为了这题,我这数学渣真是想破了脑袋也没想出算法。后来只好借助网络手段,在 “Python实现Project Euler 5” 中了解到,原来求解 a,b 两个数字的最小公倍数,可以把
阅读全文
摘要:本题来自 Project Euler 第4题:https://projecteuler.net/problem=4 所谓的“回文积”(Palindrome Product),指的是某个数字,正着念、倒着念都一样,而且这个数字是另外两个数字之乘积。比如:9009 = 91 × 99,9009就是个回文
阅读全文
摘要:本题来自 Project Euler 第3题:https://projecteuler.net/problem=3 求解 600851475143 的最大质因数。 思路就是:从 b=2 开始,让这个大数字不断被 b 除,如果能整除,这个大数字就除以 b,接着判断除以 b 后的数字是否还能被 b 整除
阅读全文
摘要:本题来自 Project Euler 第2题:https://projecteuler.net/problem=2 可能学计算机或数学的人都很喜欢 Fibonacci 吧,甚至有文章把这个 斐波那契数列 称为自然界神之存在,真是…… 类似的题目已经做过很多次了。简单地说,因为这个数列中的任意数字(第
阅读全文
摘要:开始做 Project Euler 的练习题。网站上总共有565题,真是个大题库啊! 求1000以内所有3和5的倍数的总和。用求余数的方法简单判断一下1-999之间的所有数字,只要能被3或5整除,就把它加进 sum 里。倒也不难。
阅读全文
摘要:也是术业不精,其实之前也用命令行还原过几次MySQL数据库,但总记不清语法。这不,今天想把另一台电脑上备份的数据库还原过来,结果不停报错,如下图所示: 后来才发现,因为偷懒直接复制的路径名里,用的全是反斜杠,所以总报错。改成正斜杠就没事了: mysql -u derek -p dic < D:/36
阅读全文
摘要:【Python练习题 028】 求一个3*3矩阵对角线元素之和 这题解倒是解出来了,但总觉得代码太啰嗦。矩阵这东西,应该有个很现成的方法可以直接计算才对…… 啰嗦代码如下: 输出结果如下: 请输入9个数字,用空格隔开,以形成3*3矩阵:7 9 6 5 4 8 6 7 3[7, 9, 6][5, 4,
阅读全文
摘要:【Python练习题 027】 对10个数字进行排序 这题没什么好说的,用 str.split(' ') 获取输入的10个数字,然后用 lst.sort() 就完成排序了。代码如下: 输出结果如下: 请输入10个数字,以空格隔开:3 23 4 64 6 17 80 212 9 132[3, 4, 6
阅读全文
摘要:【Python练习题 026】 求100以内的素数。 奇怪,求解素数的题,之前不是做过了吗?难道是想让我用点新技能、比如 map() 之类的?可是我想了半天还是没想出来啊!只好还是用土办法。代码如下: 输出结果如下: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31,
阅读全文
摘要:【Python练习题 025】 一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。 做题做到现在,这种题目已经很轻车熟路了。希望下一题能增加点难度啊~~~ 输出结果如下: 请输入一个5位数:1253212532不是回文数 请输入一个5位数:9828998289是个
阅读全文
摘要:【Python练习题 024】 给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。 这题如果不用递归,实在太简单了!!!代码上: 输出结果如下: 请输入一个不多于5位的正整数:45931这个数字是5位数,逆序为13954。 就这么简单。真有还有必要写递归函数吗?…… 好吧,我
阅读全文
摘要:【Python练习题 023】 有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后 问第一个人,他说是10岁。请问第五个人多大? 这题真是……用心算就能算出来好吗?好吧,应该又是要训练递
阅读全文
摘要:【Python练习题 022】 利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。 又来一个递归题!不过,有了【Python练习题 021:递归方法求阶乘】这道题的经验,还是依着葫芦画个瓢,倒也不难。代码如下: 输出结果如下: 请输入若干字符:abcdefggfedcba 如果不用递归函
阅读全文
摘要:【Python练习题 021】 利用递归方法求5!。 首先得弄清楚:5! 指的是“5的阶乘”,即 5! = 1*2*3*4*5。 然后呢,据说,“递归”就是对自身进行调用的函数。听着挺奇怪,反正先依葫芦画瓢,写代码如下: 大概意思是说:如果 x=5,那么就返回 5*f(4) 的值。而想知道这个值,就
阅读全文
摘要:【Python练习题 020】 求1+2!+3!+...+20!的和 据说这题是“累积累加”的问题,把“1+2!+3!+...+20!”展开就变成: 1 1*2 1*2*3 1*2*3*4 …… 1*2*3*4……*20 弄懂了这规律,问题就好解决了。代码如下: 输出结果如下: 2561327494
阅读全文
摘要:【Python练习题 019】 有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。 这题似乎也不难,规律是:后一个分数的分子=前一个分数的分子+分母,后一个分数的分母=前一个分数的分子,循环个20次就有结果。注意,假设分子为a,分母为b,虽然 a =
阅读全文
摘要:【Python练习题 018】 打印出如下图案(菱形): 这题简单啊,只要知道Python的内置方法 str.center(width [, fillchar]) 就能轻而易举打印出来:str即是数量不等的星号,width即是最大宽度(7个空格),默认填充字符fillchar就是空格。两个for循环
阅读全文
摘要:【Python练习题 017】 两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比。请编程序找出三队赛手的名单。 这题真真想破我脑袋了,看了好几份别人的代码才勉强看懂,真是…… 一开始我只想着先
阅读全文
摘要:【Python练习题 016】 猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。 这题得倒着推。第10天还没吃,就剩1
阅读全文
摘要:【Python练习题 015】 一球从100米高度自由落下,每次落地后反跳回原高度的一半,再落下。求它在第10次落地时,共经过多少米?第10次反弹多高? 这题其实都可以笔算出来,因为也就是落地10次。看网上给出的结果也是五花八门,也不知道自己算的对不对,请大神们赐教。 我的思路是:除了第1次从100
阅读全文
摘要:【Python练习题 014】 一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3。编程找出1000以内的所有完数。 这题只要弄明白“完数”及其“因子”的概念,就不难。一开始我把“因子”理解为“质因子”,结果只算得出个6。后来才知道,只要数字a能被数字b整除,不论b是不是质数,
阅读全文
摘要:【Python练习题 013】 求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加由键盘输入。 这题倒也不难,实际上 a+aa+aaa+aa...a 可以转化为 (a * 10**0) + (a * 10
阅读全文
摘要:【Python练习题 012】 输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。 这题也不难,逻辑很清楚,只要知道 ASCII 码表的对应值,知道 ord('a') 能将字符 'a' 转化为 ASCII 码表上对应的数值,就可以了。其中,数字 0-9 对应的码值为 48-57,大写
阅读全文
摘要:【Python练习题 011】 利用条件运算符的嵌套来完成此题:学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。 送分题。啥也不说了,看代码: ++++++++++++++++++++++++++++++++++++++ 题目出处:编程语言入门经典100例【Pyt
阅读全文
摘要:【Python练习题 010】将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。 蛮以为这又是道送分题,结果费了我1个半小时才解出来! 一开始我简单地以为,只要将输入的整数拿个数字列表挨个除一遍,能整除的就可以收为质因数。但事实上是行不通的,因为这样会连同 4、6、9 这样的数字也
阅读全文
摘要:【Python练习题 009】 打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。 这题也是送分题,只要能把任意三位数的百位、十位、个位拆解出来就好办了。思路:将任意3位数除以100
阅读全文
摘要:【Python练习题 008】判断101-200之间有多少个素数,并输出所有素数。 这题算是送分题吧,据说解法很多。我的思路是:先建立101-200的整数列表,再进行判断,如果某个数字能被“从2至这个数字前一位”整除,则将这个数字从列表剔除。挨个走一遍后,剩下的就都是素数了。代码如下: 输出结果如下
阅读全文
摘要:【Python练习题 007】 有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 这题反正我自己是算不出来。后来搜索了网上,说是经典的“斐波纳契数列”。于是我自己排画了一下(如下图,小写表示小兔子,大写表示大兔子):
阅读全文
摘要:【Python练习题 006】 输出九九乘法表 照理这题不难,逻辑关系弄对了就好办,但数学渣的我就是想了好一会儿再写对的啊…… 代码如下: 输出结果如下: ++++++++++++++++++++++++++++++++++++++ 题目出处:编程语言入门经典100例【Python版】
阅读全文
摘要:【Python练习题 005】输入三个整数x,y,z,请把这三个数由小到大输出。 这题想想应该比较容易:无非是先获取3个数字,然后比大小,按顺序输出即可。不过在写代码的过程中遇到了个难题:因为担心输入时输入非指定的分隔符,需要指定多个分隔符(英文逗号、中文逗号、空格),但 str.split() 只
阅读全文
摘要:【Python练习题 004】输入某年某月某日,判断这一天是这一年的第几天? 这题竟然写了 28 行代码!而且还不包含输入数据的验证(只能假设输入的日期是严格按照格式来的)。但我坚信,一定有更简洁的方法,比如 Python 对日期的处理。 不过反正还没学到这些知识,现在只能用傻大粗的办法解决。等学到
阅读全文
摘要:【Python练习题 003】一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少? 所谓的“完全平方数”,就是开完根号仍然是整数。 数学渣是这么思考的:假设这个数 i 在10000以内。第一步:x = sqrt(i+100)。如果 x == floor(x),则
阅读全文
摘要:【Python练习题 002】企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部
阅读全文
摘要:听说做练习是掌握一门编程语言的最佳途径,那就争取先做满100道题吧。 【Python练习题 001】有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 这题还算比较简单,思路是:先确定百位数、然后是十位数、个位数。1-4 四个数字循环一遍,就都全出来了。 如果不放心结果是否
阅读全文

浙公网安备 33010602011771号