摘要: 最大公约数和最小公倍数##1 各种定义1)倍数和约数的定义如果有一个自然数a能被自然数b整除,则称a为b的倍数,b为a的约数。例如,12和30的公约数有:1、2、3、6。2)最大公约数公约数中最大的一个公约数,称为这几个自然数的最大公约数例如:其中6就是12和30的最大公约数3)最小公倍数几个数共有的倍数叫做这几个数的公倍数,其中除0以外最小的一个公倍数,叫做最小公倍数4)最小公倍数和最大公约数的关系最小公倍数=两数的乘积/最大公约数例如: 其中60是12和30的最小公倍数##2 辗转相除法:辗转相除法是古希腊求两个正整数的最大公约数的,也叫欧几里德算法,其方法是用较大的数除A以较小的数B,上 阅读全文
posted @ 2013-04-24 14:21 零界寒冰 阅读(3320) 评论(0) 推荐(0) 编辑
摘要: [数据结构]之队列##1 描述队列是一种先进先出的线性数据结构。在队首出队,在队尾入队。队列这个是和栈相对的。比如银行的排队机制##2 数据结构属性:元素数组 elemets 队尾位置 tail元素个数 length(值为top+1)方法:NewQueue 初始化队列,创建空队列clear 清除元素IsEmpty 判断是否为空offer 添加元素poll 删除队首元素peek 获取队首元素##3 go语言实现 package main import ( "fmt" ) const CAP = 20 type Queue struct { Elemets [CAP]strin 阅读全文
posted @ 2013-04-24 11:12 零界寒冰 阅读(166) 评论(0) 推荐(0) 编辑
摘要: 逆波兰表达式(后缀表达式求值)##1 描述计算后缀表达式 [9,3,1,-,3,*,+,10,2,/,+ ]现在我们已经将表达式专为后缀表达式了,马上需要对这个表达式进行求值。计算规则:从左到右遍历每个数字,以及符号。1)如果为数字,则进栈 2)如果为符号,则栈顶的2个数字出栈并进行计算。然后将结果入栈一直到获取到最终结果。 package main import ( "fmt" "strconv" ) /* * 定义节点 */ type Node struct { data string next *Node } /* * 定义栈 */ type St 阅读全文
posted @ 2013-04-24 10:46 零界寒冰 阅读(195) 评论(0) 推荐(0) 编辑
摘要: 逆波兰表达式(中缀转后缀表达式)##一 问题描述解析并计算 9+(3-1)*3+10/2 为后缀表达式 [9,3,1,-,3,*,+,10,2,/,+ ]中缀转后缀###1 描述:在我们转换中缀到后缀的过程,其实是一个取出表达式中的操作数或运算符号进行重排列的过程。主要的转换都是根据运算符号来进行的,从表达式中取出来的数字都会放入栈中,然后根据取出来运算符号来解析出新表达式。但是运算符号其实也有一个优先级,低优先级的符号应该比高优先级符号的解析优先级别要低,也就是先解析高优先级符号,然后才会解析低优先级符号。比如 9+2*3,此时应该先解析*也就是 2,3,* 然后才会解析 + 。最终结果为. 阅读全文
posted @ 2013-04-24 10:41 零界寒冰 阅读(190) 评论(0) 推荐(0) 编辑
摘要: 逆波兰表达式(简介)##一 问题描述解析并计算 9+(3-1)*3+10/2首先,以上的公式对于人来说是很好解析计算的。但是对于计算机来说就不是那么友好了。后来波兰的逻辑学家创建了一种后缀表达法类解决这个问题。这位同学的表示方法被称为逆波兰表达式。###1 后缀表达式:简单介绍下什么叫做中缀表达式和后缀表达式。中缀表达式:平时的计算表达式为中缀表达式,类似3-1这样的平时我们书写的格式。比如上面的9+(3-1)*3+10/2。后缀表达式:将计算的操作数放在前面,最后才放置操作符。称为后缀表达式。比如3-1的后缀表达式为 3,1, -。###2 后缀表达式的转换比如将上面表达式的中缀表达式转为后 阅读全文
posted @ 2013-04-24 10:04 零界寒冰 阅读(164) 评论(0) 推荐(0) 编辑