code for fun

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

2013年6月10日

摘要: 我们在写程序的时候,总是或多或少会加入一些printf之类的语句用于输出调试信息,但是printf语句有个很不方便的地方就是当我们需要发布程序的时候要一条一条的把这些语句删除,而一旦需要再次调试的时候,这些语句又不得不一条条的加上,这给我们带来了很大的不便,浪费了我们很多的时间,也造成了调试的效率低下。所以,很多人会选择使用宏定义的方式来输出调试语句。比如,定义一个宏开关:#define __DEBUG当需要调试的时候,使用语句:#ifdef __DEBUGprintf(xxx);#endif这种方式的调试,可以通过undef __DEBUG的方式让告知编译器不编译这些语句,从而不再输出这些. 阅读全文
posted @ 2013-06-10 22:52 xueda120 阅读(319) 评论(0) 推荐(0) 编辑

2013年5月28日

摘要: 描述给定一颗二叉树,要求输出二叉树的深度以及后序遍历二叉树得到的序列。本题假设二叉树的结点数不超过1000。 输入输入数据分为多组,第一行是测试数据的组数n,下面的n行分别代表一棵二叉树。每棵二叉树的结点均为正整数,数据为0代表当前结点为空,数据为-1代表二叉树数据输入结束,-1不作处理。二叉树的构造按照层次顺序(即第1层1个整数,第2层2个,第3层4个,第4层有8个......,如果某个结点不存在以0代替)。输出输出每棵二叉树的深度以及后序遍历二叉树得到的序列。样例输入21 -11 2 0 3 4 -1样例输出1 13 3 4 2 1 1 #include <stdio.h> 2 阅读全文
posted @ 2013-05-28 08:35 xueda120 阅读(879) 评论(0) 推荐(0) 编辑

摘要: 描述给定一颗二叉树,要求输出二叉树的深度以及先序遍历二叉树得到的序列。本题假设二叉树的结点数不超过1000。 输入输入数据分为多组,第一行是测试数据的组数n,下面的n行分别代表一棵二叉树。每棵二叉树的结点均为正整数,数据为0代表当前结点为空,数据为-1代表二叉树数据输入结束,-1不作处理。二叉树的构造按照层次顺序(即第1层1个整数,第2层2个,第3层4个,第4层有8个......,如果某个结点不存在以0代替),比如输入:1 2 0 3 4 -1得到的二叉树如下:输出输出每棵二叉树的深度以及先序遍历二叉树得到的序列。样例输入21 -11 2 0 3 4 -1样例输出1 13 1 2 3 4 1 阅读全文
posted @ 2013-05-28 08:31 xueda120 阅读(1453) 评论(0) 推荐(0) 编辑

摘要: 描述给定一颗二叉树,要求输出二叉树的深度以及中序遍历二叉树得到的序列。本题假设二叉树的结点数不超过1000。 输入输入数据分为多组,第一行是测试数据的组数n,下面的n行分别代表一棵二叉树。每棵二叉树的结点均为正整数,数据为0代表当前结点为空,数据为-1代表二叉树数据输入结束,-1不作处理。二叉树的构造按照层次顺序(即第1层1个整数,第2层2个,第3层4个,第4层有8个......,如果某个结点不存在以0代替)输出输出每棵二叉树的深度以及中序遍历二叉树得到的序列。样例输入21 -11 2 0 3 4 -1样例输出1 13 3 2 4 1 1 #include <stdio.h> 2 阅读全文
posted @ 2013-05-28 01:23 xueda120 阅读(1437) 评论(0) 推荐(1) 编辑

摘要: 描述输入一系列整数,建立二叉排序树并输出排序后的序列。输入输入数据有多组,每组数据第一行包括一个整数n(1<=n<=100)。 接下来的一行包括n个整数。输出每组数据排序结果输出一行。每行最后一个数据之后有一个空格。样例输入5 1 6 5 9 8 84 6 9 2 5 4 7 3样例输出1 5 6 8 92 3 4 4 5 6 7 9 1 #include <stdio.h> 2 #include <string.h> 3 #include <ctype.h> 4 #include <math.h> 5 6 typedef struc 阅读全文
posted @ 2013-05-28 00:40 xueda120 阅读(436) 评论(0) 推荐(0) 编辑

2013年5月24日

摘要: 描述输入一行数字,如果我们把这行数字中的‘5’都看成空格,那么就得到一行用空格分割的若干非负整数(可能有些整数以‘0’开头,这些头部的‘0’应该被忽略掉,除非这个整数就是由若干个‘0’组成的,这时这个整数就是0)。你的任务是对这些分割得到的整数依从小到大的顺序排序。 输入输入数据包含多行,每行为一串数字(数字之间没有空格),这行数字的长度不大于1000。 输入数据保证:分割得到的非负整数不会大于100000000;输入数据不可能全由‘5’组成。处理到文件结束为止。输出对每行数字串进行分割并从小到大排序,输出排序后的结果,相邻的两个整数之间用一个空格分开。样例输入500510051231232. 阅读全文
posted @ 2013-05-24 00:32 xueda120 阅读(277) 评论(0) 推荐(0) 编辑

2013年5月23日

摘要: 描述Given two integer sets A and B sorted descendingly, you are asked to output the element count of A∩B. 输入Standard input will contain multiple test cases. The first line of the input is a single integrate T (1 <= T <= 50) which is the number of test cases. then T consecutive test cases followe 阅读全文
posted @ 2013-05-23 16:00 xueda120 阅读(385) 评论(0) 推荐(0) 编辑

摘要: 描述A+B人见人爱,A-B也不甘落后,这个A-B求的是两个集合的差,就是做集合的减法运算。(当然,大家都知道集合的定义,就是同一个集合中不会有两个相同的元素,这里还是提醒大家一下)呵呵,很简单吧? 输入每组输入数据占1行,每行数据的开始是2个整数n(0<n<=100)和m(0<m<=100),分别表示集合A和集合B的元素个数,然后紧跟着n+m个元素,前面n个元素属于集合A,其余的属于集合B. 每个元素为不超出int范围的整数,元素之间有一个空格隔开. 如果n=0并且m=0表示输入的结束,不做处理。输出针对每组数据输出一行数据,表示A-B的结果,如果结果为空集合,则输出“ 阅读全文
posted @ 2013-05-23 12:50 xueda120 阅读(429) 评论(0) 推荐(0) 编辑

摘要: 描述给你两个集合,要求{A} + {B}. 注:同一个集合中不会有两个相同的元素. 输入每组输入数据分为三行,第一行有两个数字n,m(0<n,m<=10000),分别表示集合A和集合B的元素个数.后两行分别表示集合A和集合B.每个元素为不超出int范围的整数,每个元素之间有一个空格隔开输出针对每组数据输出一行数据,表示合并后的集合,要求从小到大输出,每个元素之间有一个空格隔开样例输入1 212 31 211 2样例输出1 2 31 2AC code1: 1 #include<stdio.h> 2 #include<string.h> 3 #include&l 阅读全文
posted @ 2013-05-23 10:56 xueda120 阅读(264) 评论(0) 推荐(0) 编辑

摘要: 描述把一个偶数拆成两个不同素数的和,有几种拆法呢? 输入输入包含一些正的偶数,其值不会超过10000,个数不会超过500,若遇0,则结束。输出对应每个偶数,输出其拆成不同素数的个数,每个结果占一行。样例输入30260样例输出32 1 #include<stdio.h> 2 #include<string.h> 3 #include<ctype.h> 4 #include<math.h> 5 6 int isprim(int n) 7 { 8 int i; 9 for(i=2; i*i<=n; i++)10 {11 if(n%i==0)12 阅读全文
posted @ 2013-05-23 00:17 xueda120 阅读(300) 评论(0) 推荐(0) 编辑