随笔分类 -  Python

摘要:本题来自 Project Euler 第3题:https://projecteuler.net/problem=3 求解 600851475143 的最大质因数。 思路就是:从 b=2 开始,让这个大数字不断被 b 除,如果能整除,这个大数字就除以 b,接着判断除以 b 后的数字是否还能被 b 整除 阅读全文
posted @ 2016-10-28 15:56 木木卡卡西 阅读(1036) 评论(0) 推荐(1) 编辑
摘要:本题来自 Project Euler 第2题:https://projecteuler.net/problem=2 可能学计算机或数学的人都很喜欢 Fibonacci 吧,甚至有文章把这个 斐波那契数列 称为自然界神之存在,真是…… 类似的题目已经做过很多次了。简单地说,因为这个数列中的任意数字(第 阅读全文
posted @ 2016-10-28 14:43 木木卡卡西 阅读(683) 评论(0) 推荐(0) 编辑
摘要:开始做 Project Euler 的练习题。网站上总共有565题,真是个大题库啊! 求1000以内所有3和5的倍数的总和。用求余数的方法简单判断一下1-999之间的所有数字,只要能被3或5整除,就把它加进 sum 里。倒也不难。 阅读全文
posted @ 2016-10-28 14:30 木木卡卡西 阅读(1401) 评论(0) 推荐(2) 编辑
摘要:【Python练习题 028】 求一个3*3矩阵对角线元素之和 这题解倒是解出来了,但总觉得代码太啰嗦。矩阵这东西,应该有个很现成的方法可以直接计算才对…… 啰嗦代码如下: 输出结果如下: 请输入9个数字,用空格隔开,以形成3*3矩阵:7 9 6 5 4 8 6 7 3[7, 9, 6][5, 4, 阅读全文
posted @ 2016-10-19 22:04 木木卡卡西 阅读(9737) 评论(3) 推荐(0) 编辑
摘要:【Python练习题 027】 对10个数字进行排序 这题没什么好说的,用 str.split(' ') 获取输入的10个数字,然后用 lst.sort() 就完成排序了。代码如下: 输出结果如下: 请输入10个数字,以空格隔开:3 23 4 64 6 17 80 212 9 132[3, 4, 6 阅读全文
posted @ 2016-10-18 21:43 木木卡卡西 阅读(4434) 评论(0) 推荐(1) 编辑
摘要:【Python练习题 026】 求100以内的素数。 奇怪,求解素数的题,之前不是做过了吗?难道是想让我用点新技能、比如 map() 之类的?可是我想了半天还是没想出来啊!只好还是用土办法。代码如下: 输出结果如下: [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 阅读全文
posted @ 2016-10-18 21:20 木木卡卡西 阅读(1589) 评论(4) 推荐(1) 编辑
摘要:【Python练习题 025】 一个5位数,判断它是不是回文数。即12321是回文数,个位与万位相同,十位与千位相同。 做题做到现在,这种题目已经很轻车熟路了。希望下一题能增加点难度啊~~~ 输出结果如下: 请输入一个5位数:1253212532不是回文数 请输入一个5位数:9828998289是个 阅读全文
posted @ 2016-10-18 20:21 木木卡卡西 阅读(21409) 评论(2) 推荐(0) 编辑
摘要:【Python练习题 024】 给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。 这题如果不用递归,实在太简单了!!!代码上: 输出结果如下: 请输入一个不多于5位的正整数:45931这个数字是5位数,逆序为13954。 就这么简单。真有还有必要写递归函数吗?…… 好吧,我 阅读全文
posted @ 2016-10-17 22:26 木木卡卡西 阅读(1869) 评论(0) 推荐(1) 编辑
摘要:【Python练习题 023】 有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后 问第一个人,他说是10岁。请问第五个人多大? 这题真是……用心算就能算出来好吗?好吧,应该又是要训练递 阅读全文
posted @ 2016-10-17 22:17 木木卡卡西 阅读(1393) 评论(0) 推荐(1) 编辑
摘要:【Python练习题 022】 利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。 又来一个递归题!不过,有了【Python练习题 021:递归方法求阶乘】这道题的经验,还是依着葫芦画个瓢,倒也不难。代码如下: 输出结果如下: 请输入若干字符:abcdefggfedcba 如果不用递归函 阅读全文
posted @ 2016-10-17 16:24 木木卡卡西 阅读(8075) 评论(4) 推荐(1) 编辑
摘要:【Python练习题 021】 利用递归方法求5!。 首先得弄清楚:5! 指的是“5的阶乘”,即 5! = 1*2*3*4*5。 然后呢,据说,“递归”就是对自身进行调用的函数。听着挺奇怪,反正先依葫芦画瓢,写代码如下: 大概意思是说:如果 x=5,那么就返回 5*f(4) 的值。而想知道这个值,就 阅读全文
posted @ 2016-10-17 15:38 木木卡卡西 阅读(6503) 评论(3) 推荐(1) 编辑
摘要:【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 阅读全文
posted @ 2016-10-17 14:47 木木卡卡西 阅读(9446) 评论(1) 推荐(0) 编辑
摘要:【Python练习题 019】 有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。 这题似乎也不难,规律是:后一个分数的分子=前一个分数的分子+分母,后一个分数的分母=前一个分数的分子,循环个20次就有结果。注意,假设分子为a,分母为b,虽然 a = 阅读全文
posted @ 2016-10-17 14:19 木木卡卡西 阅读(5391) 评论(1) 推荐(0) 编辑
摘要:【Python练习题 018】 打印出如下图案(菱形): 这题简单啊,只要知道Python的内置方法 str.center(width [, fillchar]) 就能轻而易举打印出来:str即是数量不等的星号,width即是最大宽度(7个空格),默认填充字符fillchar就是空格。两个for循环 阅读全文
posted @ 2016-10-17 11:21 木木卡卡西 阅读(20195) 评论(0) 推荐(2) 编辑
摘要:【Python练习题 017】 两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比。请编程序找出三队赛手的名单。 这题真真想破我脑袋了,看了好几份别人的代码才勉强看懂,真是…… 一开始我只想着先 阅读全文
posted @ 2016-10-16 21:31 木木卡卡西 阅读(3751) 评论(10) 推荐(1) 编辑
摘要:【Python练习题 016】 猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。 这题得倒着推。第10天还没吃,就剩1 阅读全文
posted @ 2016-10-16 17:14 木木卡卡西 阅读(24331) 评论(0) 推荐(1) 编辑
摘要:【Python练习题 015】 一球从100米高度自由落下,每次落地后反跳回原高度的一半,再落下。求它在第10次落地时,共经过多少米?第10次反弹多高? 这题其实都可以笔算出来,因为也就是落地10次。看网上给出的结果也是五花八门,也不知道自己算的对不对,请大神们赐教。 我的思路是:除了第1次从100 阅读全文
posted @ 2016-10-16 16:41 木木卡卡西 阅读(8245) 评论(2) 推荐(0) 编辑
摘要:【Python练习题 014】 一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如6=1+2+3。编程找出1000以内的所有完数。 这题只要弄明白“完数”及其“因子”的概念,就不难。一开始我把“因子”理解为“质因子”,结果只算得出个6。后来才知道,只要数字a能被数字b整除,不论b是不是质数, 阅读全文
posted @ 2016-10-16 11:13 木木卡卡西 阅读(7368) 评论(0) 推荐(1) 编辑
摘要:【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 阅读全文
posted @ 2016-10-14 14:02 木木卡卡西 阅读(19039) 评论(5) 推荐(1) 编辑
摘要:【Python练习题 012】 输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。 这题也不难,逻辑很清楚,只要知道 ASCII 码表的对应值,知道 ord('a') 能将字符 'a' 转化为 ASCII 码表上对应的数值,就可以了。其中,数字 0-9 对应的码值为 48-57,大写 阅读全文
posted @ 2016-10-14 13:17 木木卡卡西 阅读(2853) 评论(0) 推荐(1) 编辑