美文网首页零基础学编程程序员架构算法设计模式和编程理论
是程序员,就进来做编程题:算24点求一个解法

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

作者: 学哥量化交易学习 | 来源:发表于2017-01-24 11:13 被阅读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

    往期教程

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

    相关文章

      网友评论

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

        本文链接:https://www.haomeiwen.com/subject/oodzbttx.html