
C/C++
文章平均质量分 78
低调小一
Ubuntu重度患者,曾经的服务器开发工程师,如今正在深入学习到Android Framework
展开
-
xxx定律
#include #include int main(){ int n; int count; while(scanf("%d",&n)) { if(n == 0) break; count = 0; while(n != 1) { if(n % 2 == 0) { n /= 2; }else { n = 3 * n +原创 2012-09-29 09:27:15 · 1777 阅读 · 0 评论 -
排名问题
九度OJ终于把所有的一星题目AC了,现在开始二星的征程。唉,吐草一下,人家高帅富假期都去各种潇洒,我这种拼命的人只能往死里学习编程了,加油,我相信终有一天我会成功的!题目描述: 今天的上机考试虽然有实时的Ranklist,但上面的排名只是根据完成的题数排序,没有考虑每题的分值,所以并不是最后的排名。给定录取分数线,请你写程序找出最后通过分数线的考生,并将他们的成绩按降序打印。原创 2012-10-04 12:54:43 · 1517 阅读 · 0 评论 -
寻找大富翁
刚完成了一篇博客,讲述的是快速排序,哈哈,研究明白了用起来还是挺爽的题目描述: 浙江桐乡乌镇共有n个人,请找出该镇上的前m个大富翁.输入: 输入包含多组测试用例. 每个用例首先包含2个整数n(0 n和m同时为0时表示输入结束.输出: 请输出乌镇前m个大富翁的财产数,财产多的排前面,如果大富翁不足m个,则全部输原创 2012-10-06 14:51:24 · 1589 阅读 · 1 评论 -
判断三角形类型
假期无聊,继续九度OJ刷题,每天几道题,强制编程人啊!三角形判断的方法:直角三角形:勾股定理锐角和钝角三角形:余玄定理题目描述:给定三角形的三条边,a,b,c。判断该三角形类型。输入:测试数据有多组,每组输入三角形的三条边。输出:对于每组输入,输出直角三角形、锐角三角形、或是钝角三角形。样例输入:3 4 5原创 2012-10-05 10:57:32 · 4439 阅读 · 0 评论 -
互换最大最小数
唉,一大早来实验室没去公司等着导师分项目申请奖学金,结果导师竟然先去公司了,好吧,为了不耽误时间,随便上9度OJ准备刷题。(ps:天天老是做项目写代码了,考试考的这糟糕啊,平均竟然刚到80分,是个同学就比我分数高,淡淡的忧伤,算了,不鸟了)题目描述:输入一个数n,然后输入n个数值各不相同,调换数组中最大和最小的两个数,然后输出。输入:测试数据有多组,原创 2012-09-17 10:23:37 · 2017 阅读 · 1 评论 -
成绩排序
题目描述:用一维数组存储学号和成绩,然后,按成绩排序输出。输入:输入第一行包括一个整数N(1接下来的N行每行包括两个整数p和q,分别代表每个学生的学号和成绩。输出:按照学生的成绩从小到大进行排序,并将排序后的学生信息打印出来。如果学生的成绩相同,则按照学号的大小进行从小到大排序。样例输入:31 902 873 92原创 2012-10-08 20:36:08 · 2334 阅读 · 0 评论 -
快速排序——成绩排序
题目描述: 有N个学生的数据,将学生数据按成绩高低排序,如果成绩相同则按姓名字符的字母序排序,如果姓名的字母序也相同则按照学生的年龄排序,并输出N个学生排序后的信息。输入: 测试数据有多组,每组输入第一行有一个整数N(N 每个学生的数据包括姓名(长度不超过100的字符串)、年龄(整形数)、成绩(小于等于100的正数)。输出:原创 2012-10-09 10:30:32 · 5079 阅读 · 0 评论 -
整数逆序(c语言实现)
起因今天九度练习的时候,发现需要对整数进行逆序处理,比如456逆序后为654,贴出自己写的逆序代码,大家有更好的方法欢迎跟帖讨论AC代码/** * Description:整数反转函数 */int reverse_number(int a){ int rev[20]; int i, j, b, d; for(i = 0; a ; i ++) {原创 2012-10-11 00:44:26 · 6932 阅读 · 6 评论 -
ZOJ顺序输出问题
昨天设计数据库时发现了一个bug,今天需要跟师兄交流,唉,有时候感觉自己需要看看心理学的书了,天天看编程方面的东西心理都快不健康了,不多说了,早上来了趁着师哥没来,赶紧九度刷题,唉,一星的快刷没了!!题目描述:读入一个字符串,字符串中包含ZOJ三个字符,个数不一定相等,按ZOJ的顺序输出,当某个字符用完时,剩下的仍然按照ZOJ的顺序输出。输入:题目包含多组用原创 2012-09-21 09:50:43 · 2962 阅读 · 0 评论 -
字符串连接(c语言实现)
起因今天九度刷题的时候,发现一个不调用任何c的库函数实现字符串拼接的代码很多人写的过于复杂,链表都用上了,真的不至于,只要知道字符串的最后截止符是'\0'.题目描述:不借用任何字符串库函数实现无冗余地接受两个字符串,然后把它们无冗余的连接起来。输入:每一行包括两个字符串,长度不超过100。输出:可能有多组测试数据,对于每组数据原创 2012-10-12 17:06:19 · 9957 阅读 · 2 评论 -
众数
周六休息之余写个小程序锻炼一下脑子,哈哈,九度刷题真的不错。题目描述:输入20个数,每个数都在1-10之间,求1-10中的众数(众数就是出现次数最多的数,如果存在一样多次数的众数,则输出权值较小的那一个)。输入:测试数据有多组,每组输入20个1-10之间的数。输出:对于每组输入,请输出1-10中的众数。样例输入:5原创 2012-10-13 19:20:29 · 2359 阅读 · 1 评论 -
数组去重(c语言实现)
起因在九度练习acm的时候,有道题我认为应该先进行数组去重操作,由于工作中我大部分都是用php写代码,php中数组去重只要一个array_diff()函数即可实现,但是到C语言中,我就没有现成的api函数可以让我调用了,因此我自己实现了一个算法,进行数组去重,但是这个算法有明显的缺陷,我会先把算法展示出来,然后解释算法的缺陷数组去重代码#include #include原创 2012-10-16 00:03:28 · 37868 阅读 · 14 评论 -
统计字符
蛋疼的奖学金评定规则,哥研究生一年学习了php,mysql,redis,各种运维知识,多种编程语言,一年半的时间天天作息时间早上7点到晚上1点,除非周末从不间断,竟然是奖学金评定的倒数第一,我擦!题目描述: 统计一个给定字符串中指定的字符出现的次数。输入: 测试输入包含若干测试用例,每个测试用例包含2行,第1行为一个长度不超过5的字符串,第2行为原创 2012-09-26 09:50:38 · 1287 阅读 · 0 评论 -
单链表的冒泡排序
起因今天利用空余时间在九度做ACM的时候,需要对单链表进行排序,由于单链表不是随机存取结构,所以我不建议用快速排序,因此采用了冒泡排序!带头节点的尾插法构建单链表//初始化带头节点的链表struct lnode *head, *s, *r, *p;head = malloc(sizeof(struct lnode));r = head;for(i = 0; i < n;原创 2012-10-30 17:56:17 · 9258 阅读 · 0 评论 -
不一样的循环队列
起因在九度ac了一道还算不错的队列题目,记录一下,数组实现的循环队列题目描述:大家都知道数据结构里面有一个结构叫做循环队列。顾名思义,这是一个队列,并且是循环的。但是现在,淘气的囧哥给这个循环队列加上了一些规矩,其中有5条指令:(1) Push K, 让元素K进队列。(2) Pop,对头元素出队列。(3) Query K,查找队列中第K个元素,注意K的合法性。原创 2012-10-30 18:31:20 · 1550 阅读 · 0 评论 -
2010北邮复试网研上机题——打牌
起因:最近利用空余时间也练习了将近一个月的acm,重新回来看这篇当时的博客,发现代码错误百出,在九度OJ上重新ac了这道题,上代码给大家看题目要求:题目描述:牌只有1到9,手里拿着已经排好序的牌a,对方出牌b,用程序判断手中牌是否能够压过对方出牌。 规则:出牌牌型有5种 [1]一张 如4 则5...9可压过 [2]两张 如44 则55,66,77,.原创 2011-12-15 20:57:54 · 2237 阅读 · 0 评论 -
九度oj 文献排序
起因:九度有些题目是在线测试题目,没有讨论区,这道三星题目我看AC率还是挺低的,所以贴出自己的AC代码,供大家学习讨论考察点:考察点在结构体的使用,用了一个数组的复制,同时注意字符串的结束符为'\0'题目描述:现在你的导师给你了一个待排序的参考文献列表,要你排好序给他。文献列表中每一条文献记录只占一行。排序的规则和string类型字符串的比较规则一致(在排序时如果该字符原创 2012-10-25 10:46:56 · 1825 阅读 · 0 评论 -
二叉树的遍历
遍历的概念所谓遍历(traversal),就是沿着某条搜索路线,依次对树中每个结点均做一次且仅做一次访问。遍历是二叉树上最重要的运算之一,是二叉树上进行其它运算的基础遍历方案三个操作从二叉树的定义上可知,一棵非空的二叉树由根结点及左、右子树这三个部分组成。因此,在任一给定的结点上,可按某种次序执行三个操作(1)访问结点本身(N)(2)遍历该结点的左子树(L)(3原创 2012-11-11 19:16:17 · 1243 阅读 · 0 评论 -
A + B 九度oj
前言好久没写九度的acm了,今天晚上兴起写了一个三星的a+b的题目,难点可以在于知道了输入的格式后如何进行输入的控制吧,提供一种思路,毕竟c里没有php那么多可供调用的系统函数,写下题目要求,直接上ac代码了题目描述:读入两个小于100的正整数A和B,计算A+B.需要注意的是:A和B的每一位数字由对应的英文单词给出.输入:测试输入包含若干测试原创 2012-11-29 00:20:24 · 2366 阅读 · 6 评论 -
数字阶梯求和
前言今早把很早之前在九度上没有ac的一道题目做出来了,主要是大数据求和的问题,简单的int型已经无法表示最终的结果,因为int的范围在32bit机器上是[0-4294967295],感觉是很大,但是数字阶梯求和的时候很容易就越界了。这里提供自己的一种思路。题目描述:给定a和n,计算a+aa+aaa+a...a(n个a)的和。输入:测试数据原创 2012-11-29 11:18:55 · 3064 阅读 · 1 评论 -
将A+B转换为指定进制数
前言进制转换是典型的栈的应用,特别是用数组实现的顺序栈就更简单了,随便ac了一个九度的题目,记录一下吧题目描述:输入两个不超过整型定义的非负10进制整数A和B(31-1),输出A+B的m (1 输入:输入格式:测试输入包含若干测试用例。每个测试用例占一行,给出m和A,B的值。当m为0时输入结束。输出:输出格式:每个测试原创 2012-11-29 21:50:30 · 2004 阅读 · 0 评论 -
北邮2011网研复试上机题——复数集合
前言从我开始在中传读研开始到现在已经有将近一年半了,从最初的计算机小白到现在的好联系服务器端主力开发成员,我能每天感受到自己的进步,但是心里一直耿耿于怀的是当时北邮复试被刷的事情,我虽然庆幸能在中传遇到我人生最重要的两位导师(黄老师、范老师),这两位老师从各个方面重新打造了我,让我现在能够一直在进步,但是我还是很不爽复试被刷以及上机考试竟然没有ac一道题。这一年半的时间,我不敢偷懒,php虽然原创 2012-12-03 21:53:21 · 2430 阅读 · 0 评论 -
插入排序(c语言版)
前言插入排序(insertion sort)的基本思想:每次将一个待排序的记录,按其关键字大小插入到前面已经排序好的序列中,直到全部记录插入完成为止.直接插入排序基本思想假设待排序的记录存放在数组R[1..n]中。初始时,R[1]自成1个有序区,无序区为R[2..n].从i = 2起直到i = n 为止,依次将R[i]插入当前的有序区R[1..i - 1]中,生成含n个记录原创 2012-12-03 21:41:26 · 25834 阅读 · 0 评论 -
循环移位(c语言)
移位运算符符号 含义<< 左移位>> 右移位举例(32位ubuntu系统,unsigned short int 16bit)#include #include void intTobinary(unsigned int);int main(){ unsigned short int a = 15; int i; //首先a左移2位 intTobinary(a)原创 2012-12-07 17:41:21 · 11642 阅读 · 0 评论 -
Digital Roots(c递归求解)
前言今天晚上现在是12:38写了个递归程序解决了九度的一个二星题,自我感觉写的还不错,记录一下。解题思路:看懂英语,因为是英文描述的大整数的时候尽量用字符串存储,普通的就算是long long int类型一般都不够九度测试的长度(我就因为开始用了intWA了一次)题目描述: The digital root of a positive integer is原创 2012-12-08 00:38:17 · 2326 阅读 · 2 评论 -
c语言中char类型转int类型
前言在九度oj做acm的时候,经常会遇到了char类型和int类型相互转化的问题,这里进行一下总结。今后,可能会多次更新博客,因为半年做了很多总结,但是都是保存在word文档上了,现在开始慢慢向优快云博客转移。问题类型char型数字转换为int型转换方法a[i] - '0'参考程序#include #include #include i原创 2011-12-15 21:15:13 · 43791 阅读 · 2 评论 -
判断Ubuntu是32bit还是64bit
前言今天在运维工作时候,突然忘记查看ubuntu系统是32bit还是64bit的命令,于是想到了用c语言写个小程序进行判断,感觉挺有意思的,记录一下c语言方法思路在32bit的机器里,内存地址用32bit标识在64bit的机器里,内存地址用64bit标识因此,我们可以打印指针的字节数*8不就是cpu的位数了代码#include #include原创 2013-01-22 21:40:08 · 4970 阅读 · 0 评论 -
2010北邮上机真题——哈夫曼树
题目描述:哈夫曼树,第一行输入一个数n,表示叶结点的个数。需要用这些叶结点生成哈夫曼树,根据哈夫曼树的概念,这些结点有权值,即weight,题目需要输出所有结点的值与权值的乘积之和。输入:输入有多组数据。每组第一行输入一个数n,接着输入n个叶节点(叶节点权值不超过100,2输出:输出权值。样例输入:5 1 2 2 5 9原创 2013-01-04 21:14:17 · 2851 阅读 · 2 评论 -
c语言调用库函数qsort()进行快速排序
前言各种排序方法中,例如冒泡、插入,快排等我最喜欢用快速排序,特别欣赏快排的分治思想,调用系统的qsort函数前希望大家也能了解一下快速排序的原理,参考链接见:http://blog.youkuaiyun.com/zinss26914/article/details/8043168qsort函数原型void qsort(void *base, size_t nmemb, size_t si原创 2013-01-26 18:20:42 · 13893 阅读 · 6 评论 -
数组中的数只出现一次
前言中午在微薄上看道了九度的这道题,把题目先贴出来,分享一下我的解题思路吧题目描述:一个整型数组里除了两个数字之外,其他的数字都出现了两次。请写程序找出这两个只出现一次的数字。输入:每个测试案例包括两行:第一行包含一个整数n,表示数组大小。2<=n <= 10^6。第二行包含n个整数,表示数组元素,元素均为int。输出:对应每个测试案例,输出数组中只出现一次的两个数。原创 2013-01-29 14:59:05 · 2148 阅读 · 0 评论 -
星期几问题——蔡勒公式
前言这篇博客主要是参考网上的一个帖子,然后自己推断验证,在原创和转载之间犹豫了很久,鉴于我确实做了很多推导工作,姑且就认为我是原创吧!简介星期制度星期制度是一种古老的制度。据说因为《圣经×创世纪》中规定上帝用六天的时间创世纪,第七天休息,所以人们也就以七天为一个周期来安排自己的工作和生活,而星期天是休息日。求星期几的思路原点差值取余法首先,先要知道在原创 2013-01-30 11:08:51 · 4478 阅读 · 2 评论 -
矩阵旋转——(c语言)
n阶矩阵旋转矩阵的顺时针旋转基本有四种情况:0度90度180度270度,相当于逆向的90度算法思路矩阵的计算主要是考虑下标之间的变换,先上一张我在纸上分析的图(ps:好大啊,没有压缩)以aij为例,i,j均从1开始计数90度旋转:列号变为行号(n - 行号 + 1)变成列号规律: a[i][j] = b原创 2013-01-17 19:07:33 · 29061 阅读 · 9 评论 -
贪心算法
引言事先声明,我学习贪心算法之前只是理解了动态规划的装配线调度问题,其它的动态规划基础基本为零,我感觉很多问题都可以用贪心来解决,因此在这里总结一下我学习贪心算法的过程,很多东西是靠做题和死记硬背理解的,唉,为自己的智商着急啊!我采用通过acm题的方式来分析一下我理解的贪心算法!例题题目描述:又到毕业季,很多大公司来学校招聘,招聘会分散在不同时间段,小明想知道自己最多能完原创 2013-02-13 15:25:55 · 2078 阅读 · 0 评论 -
堆栈的使用
前言大年初七回到学习开始复习算法,重新看了这个堆栈的代码,实在不明白为什么这么多人会踩,感觉链栈实现的不错啊,增加一个顺序栈ac的代码,希望大家评价的时候真的是看了我的代码,写的不好可以留言指导我题目题目描述: 堆栈是一种基本的数据结构。堆栈具有两种基本操作方式,push 和 pop。Push一个值会将其压入栈顶,而 pop 则会将栈顶的值弹出。现在我们就来验证一下堆栈原创 2012-10-17 00:52:42 · 1937 阅读 · 0 评论 -
最优二叉树&&哈夫曼编码
树的路径长度树的路径长度是从树根到树中每一结点的路径长度之和。在结点数目相同的二叉树中,完全二叉树的路径长度最短。树的带权路径长度(weighted path length of tree,wpl)结点的权值:在一些应用中,赋予树中结点的一个有某种意义的实数、结点的带权路径长度:结点到树根之间的路径长度与该结点上权的乘积树的带权路径长度(wpl):定义为树中所有结点的带原创 2013-01-04 11:15:54 · 5787 阅读 · 2 评论 -
简单表达式求值——算符优先法
前言周五加班的时候,在九度oj上练习了一道简单表达式求值的题目,用到了“算符优先法”,这里简单的记录一下题目题目描述: 读入一个只包含 +, -, *, / 的非负整数计算表达式,计算该表达式的值。输入: 测试输入包含若干测试用例,每个测试用例占一行,每行不超过200个字符,整数和运算符之间用一个空格分隔。没有非法表达式。当一行中只有0时输入结束,相应的结果不原创 2012-11-18 16:49:01 · 5673 阅读 · 4 评论 -
百钱买百鸡
前言虽然感觉这到题目很水,但是看到浏览量这么高,我还是适当的调整一下布局吧,通过页面的源码进行调整,因为csdn的博客编辑功能太弱了,必须手动添加等标签,不然无法识别题目题目描述: 用小于等于n元去买100只鸡,大鸡5元/只,小鸡3元/只,还有1/3元每只的一种小鸡,分别记为x只,y只,z只。编程求解x,y,z所有可能解。输入: 测试数据有多组,输入n。原创 2012-09-20 15:50:16 · 2223 阅读 · 2 评论 -
最大公约数&&最小公倍数
前言整理之前的博客,在求最大公约数的基础上增加了求最小公倍数最大公约数思路采用欧几里得的辗转相除法即可题目题目描述:输入两个正整数,求其最大公约数。输入:测试数据有多组,每组输入两个正整数。输出:对于每组输入,请输出其最大公约数。样例输入:49 14样例输出:7ac代码#include #include int原创 2012-10-14 17:33:01 · 2367 阅读 · 1 评论 -
素数检测算法
前言今天做ACM的时候,遇到了素数的检测,检测一个范围内的素数的时候,如果用最简单的那种方法,超时严重,因此学习了一个新的素数检测算法——素数筛选法,这里也是跟大家分享一下素数素数的定义一个大于1的整数,如果不能被除1和它本身之外的其它正整数整除,则是素数(又称质数)合数的定义一个大于1的整数,如果不是素数则是合数。其中能整除这个数的正整数叫做约数,不等于1原创 2012-11-21 10:50:13 · 3753 阅读 · 1 评论 -
括号匹配问题
前言周一是我女朋友的生日,无奈公司的接口需要我去调试,心里也确实放不下公司的事情,结果周末两天都在公司调试加班,今天周一我和女友都上班,唉,太感谢我女友了,一个男人的高度很大程度上取决于身边的女人啊,祝我宝贝璐璐生日快乐。我的博客都会根据自己的学习水平实时的进行更新,看到有些人转载我的博客没标明出处很上火,而且全是无脑照抄,真是无力吐嘈,感觉用链栈实现括号匹配反而复杂了,用顺序栈即可,原创 2012-10-22 00:46:40 · 3249 阅读 · 2 评论