零基础学编程程序员架构算法设计模式和编程理论

是程序员,就进来做编程题:算24点求一个解法

2017-01-24  本文已影响326人  学哥量化交易学习


上节课作业

1.输入一行英文字符,分别统计英文字母/空格/数字/其它字符出现的次数

代码如下:

结果如下:

说明:

前面统计字符部分沿用之前的部分代码,后面分类统计部分采用一个另外字典表进行计算

因为分类字符都是连续的,可以直接采用大小比较,要不然就要用很多个or,或者利用循环进行判断

一个新的写法 a+=1 这个相当于 a=a+1 是一种简写方式

上面我给出的作业例子其实还可以改造的更简单,大家考虑一下,可以直接针对输入字符串进行统计,就不需要先进行分字符统计

大家在这个基础上自己尝试修改看看。

2.对6个数值进行排序,输出从小到大

排序算法有很多种,大家可以去网上搜索看看

我们这里只讲最简单的一种,冒泡法排序

主要是2重循环套在一起,外层循环i变量从 位置0到最后位置-1,内层循环j变量从 外层位置加1到最后位置

内层循环里面比较i和j位置的数值,如果发现j位置的数值更小,则交换i和j的数值,这样内存循环一遍确保外层的当前值肯定最小

外层全部循环完成之后,全部排序就好了

交换数值要用到临时变量, temp = j ; j = i ; i = temp;

代码如下:

结果如下:

总结一下从第8课到第14课的内容

第8课【0008 加减乘除也会算错?还要编写程序测试?】

引入注释,中文编码,继续练习if判断

第9课【0009 如何编写程序计算所属星座,一看就懂】

组合判断条件,测试的方法

第10课【0010 人生就像死循环,只要不退出就要继续运行】

引入while循环,计数器变量用法,break退出循环

第11课【0011 迷人的斐波拉契数列,数学到极致就是美,编程同样如此】

继续while循环,循环里面更复杂了

第12课【0012 优秀的程序员就是用简洁优美的代码实现同样的功能】

引入列表数据类型,如何让代码更简洁

第13课【0013 人挪活,树挪死,数据类型该换就得换】

说明数据类型,以及如何强制转换,引入range函数和二维列表

第14课【0014 我的字典里不能没有你,关键得有Key】

引入字典数据类型,实例说明用法

期中考试题目,请用3天的时间完成

题目1:

求可被17整除的所有三位数

题目2:

打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。

例如: 153=1的3次方+5的3次方+3的3次方

题目3:

有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子

问最后留下的是原来第几号的那位。

题目4:

输入2个字符串,高效找出最长的公共子串,例如helloworldmynameisxuege和thisworldismyfirstname返回world

题目5:

输入4个数字,数字范围在1-13之间,求至少一个计算方法(限加减乘除,可带括号),可以计算出24

测试案例:

输入 5 5 5 1 输出 ( 5 - 1 / 5 ) * 5 = 24

输入 3 3 7 7 输出 ( 3 + 3 / 7 ) * 7 = 24

往期教程

因为教程是系列教程,前后关联性非常强,请大家按照微信公众号【零基础学编程】的发布时间先后次序进行阅读。

上一篇下一篇

猜你喜欢

热点阅读