算法
文章平均质量分 74
liangchao_88123
苦逼学生,自学CS,本科混完,研究生在混,日后的目标是成为一个混混
展开
-
关于阶乘的问题
来自《编程之美》的关于阶乘的题目: 1.给定一个整数N,那么N的阶乘N!末尾有多少个0呢?例如:N = 10, N! = 3628800,N!的末尾有两个0 2.求N!的二进制表示中最低位1的位置。 这两道题的解法类似,先分析第二道题。 要求得N!的二进制表示中最低位1的位置,可将N!循环右移,直到无法被2整除为止,右移的次数即为最低位1之前0的个数原创 2012-10-04 18:13:51 · 374 阅读 · 0 评论 -
大整数加法——C语言
使用字符串对大整数进行加法计算 发现单纯看代码是件很痛苦的事,虽然这个题目网上到处都是,可的确没有几个写得让人可以很顺畅的看下去,结果就是宁愿自己编个垃圾的,也不愿去看别人的代码(除非是大师级的,不过大师不会编这种简单的代码了吧····)。现在做的一些题目,都是看看大概思路,然后自己实现,实在遇到问题再去看别人的代码,不过就目前为止勉强都可以自己编着试试,毕竟还没有涉及到很复杂的算法原创 2012-09-22 12:20:17 · 2806 阅读 · 1 评论 -
字符串压缩——C语言
某公司的一道编程题(好像不提公司名比较好,不然总感觉怪怪的):对输入字符串进行压缩,输入"aaabcccdde",输出"3ab3c2de",即对连续出现的字符进行压缩。 如果数据结构是数组的话,主要是要解决两个问题,一是统计重复的字符,二是确定数组压缩后每个元素在数组中所处的位置。 可以用一个指针遍历数组,另一个指针标记存储位置。 (虽然实现了功能,但是原原创 2012-09-24 21:53:39 · 4477 阅读 · 0 评论 -
链表的基本排序——C语言
(程序都是针对有头结点的链表进行排序) 1.插入排序 需要用两个指针对链表进行遍历,一个指针用于标记待插入的节点(外循环),另一个指针用于寻找插入位置(内循环)。因为需要进行节点的删除与插入,因此对用于遍历的两个指针,还需要再添加两个前驱指针。 Node *InsertSortList( Node *L ) { Node *p1, *p2, *temp, *p原创 2012-09-24 21:56:47 · 591 阅读 · 0 评论