该文被密码保护。 阅读全文
posted @ 2017-10-23 11:21 煮咖啡的猪! 阅读(45) 评论(0) 推荐(0) 编辑
摘要: 采用面向对象程序设计的方式,设计小学数学考试系统的有关类 (题目数量,题目类型(四则运算),题目内容都是随机产生),提供答题及自动评分的功能。 思路:将每一道数学题抽象为一个对象,因此可以写出一个类来实现数学题。 然后再Test中再用随机数来确定题目的数量,至于判分功能,再数学类中定义一个stati 阅读全文
posted @ 2017-10-22 20:11 煮咖啡的猪! 阅读(193) 评论(0) 推荐(0) 编辑
摘要: 采用面向对象的方法设计一个线性表,目的是为其他需要用线性表的应用提供线性表对象。 思路:写一个线性表类,在类中实现Node的定义,来定义每一个点,同时实现増删改查的操作。 但是,这样是不够的。按照题目的要求,这个线性表不是一个简单的线性表,看要求“为其他需要线性表的应用提供线性表对象”,这个要求体现 阅读全文
posted @ 2017-10-22 20:06 煮咖啡的猪! 阅读(163) 评论(0) 推荐(0) 编辑
摘要: 大整数存储 用一个字符串读取输入的大数,在转换的时候,用反转的方式存到一个int型的数组中。 大整数比较大小 先判断两者的len大小,如果不鲜水果等,则以长的为大;如果相等,则从高位到低位进行比较,知道出现某一位不等,就可以判断两个数的大小。 高精度加法 用竖式的形式进行计算,对其中一位进行加法的步 阅读全文
posted @ 2017-10-13 19:45 煮咖啡的猪! 阅读(294) 评论(0) 推荐(0) 编辑
摘要: 素数筛法的关键就在一个“筛”字。算法从小到大枚举所有数,对每一个素数,筛去它的所有倍数,剩下的就都是素数了。 例如:求1-15中的所有素数。 1、 2是素数(唯一需要事先确定的),因此筛去2的所有倍数,即4、6、8、10、12、14; 2、 3没有被前面的步骤筛去,因此3是素数,筛去所有3的倍数,即 阅读全文
posted @ 2017-10-12 21:25 煮咖啡的猪! 阅读(327) 评论(0) 推荐(0) 编辑
摘要: 有很多题目需要细心考虑过程中是否可能存在递推关系,如果能找到这样的递推关系,就能事时间复杂度下降不少。例如就这一类涉及序列的题目来说,假如序列的每一位所需要的计算的值都可以通过该位左右两侧的结果计算得到,那么就可以考虑所谓的“左右两侧的结果”是否能通过递推进行预处理来得到,这样在后面的使用汇总就可以 阅读全文
posted @ 2017-10-12 09:51 煮咖啡的猪! 阅读(263) 评论(0) 推荐(0) 编辑
摘要: 打表是一种典型的用空间换时间的技巧,一般指将所有可能需要用到的结果事先计算出来,这样后面需要用到时就可以直接查表获得。打表常见的用法有如下几种: 1、在程序中一次性计算出所有需要用到的结果,之后的查询直接取这些结果。 这个是最常用到的用法,例如在一个需要查询大量Fibonacci数F(n)的问题中, 阅读全文
posted @ 2017-10-12 09:42 煮咖啡的猪! 阅读(4377) 评论(0) 推荐(2) 编辑
摘要: two pointers是算法编程中一种非常重要的思想,但是很少会有教材单独拿出来将,其中一个原因是它更倾向于是一种编程技巧,而长得不太像是一个是“算法”的模样。two pointers的思想十分简介,但却提供了非常高的算法效率。 以一个例子引入:给定一个递增的正整数序列和一个正整数M,求序列中的连 阅读全文
posted @ 2017-10-12 09:15 煮咖啡的猪! 阅读(2229) 评论(1) 推荐(1) 编辑
摘要: 最近上课讲到String类,课下补充StringBuffer和StringBuilder的东西。 1、首先这三个都是java中处理字符串的常用类。 2、三者在执行速度方面是 StringBuilder>StringBuffer>String的。 至于为什么String执行速度慢,是因为String是 阅读全文
posted @ 2017-10-12 08:58 煮咖啡的猪! 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 动态规划算法适用于解最优化问题。通常可按以下4个步骤进行: 1.找出最优解的性质,并刻画其结构特征 2.递归地定义最优质 3.以自底向上的方式计算出最优值 4.根据计算最优值时得到的信息,构造最优解 举例:矩阵乘法问题 以两个矩阵相乘为例,A1*A2,A1和A2为两个矩阵,假设A1的行列数是p*q, 阅读全文
posted @ 2017-10-11 20:25 煮咖啡的猪! 阅读(369) 评论(0) 推荐(0) 编辑