0014m 是程序员,就进来做编程题:算24点求一个解法
作者:学哥
发布时间:2017-1-24
上节课作业
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