逝者如斯,不舍昼夜

尘世中一个迷途小书童,读书太少,想得太多
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

08 2015 档案

摘要:来源:《算法竞赛入门经典》例题5.4.2 题目:输入正整数n(2≤n≤100),把阶乘n!=1*2*3*...*n分解成素因子相乘的形式,从小到大输出各个素数(2、3、5...)的指数。例如,5! 表示为 3 1 1(5!=23*31*51=120),程序忽略比最大素因子更大的素数(否则末尾会... 阅读全文

posted @ 2015-08-30 22:03 SteveWang 阅读(1626) 评论(0) 推荐(0) 编辑

摘要:来源:《算法竞赛入门经典》例题5.4.1 题目:现代数学的著名证明之一是Georg Cantor证明了有理数是可枚举的。他是用下面这一张表来证明这一命题的: 第一项是1/1,第二项是是1/2,第三项是2/1,第四项是3/1,第五项是2/2,……。输入n,输出第n项。 样例输入: 3... 阅读全文

posted @ 2015-08-30 14:25 SteveWang 阅读(7822) 评论(0) 推荐(1) 编辑

摘要:来源:《算法竞赛入门经典》例题5.3.2 题目:输入一个字典(用******结尾),然后再输入若干单词。每输入一个单词w,你都需要在字典中找出所有可以用w的字母重排后得到的单词,并按照字典序从小到大的顺序在一行中输出( 如果不存在,输出:( )。输入单词之间用空格或空行隔开,且所有输入单词都由... 阅读全文

posted @ 2015-08-29 15:51 SteveWang 阅读(1782) 评论(0) 推荐(0) 编辑

摘要:qsort函数简介 排序方法有很多种:选择排序,冒泡排序,归并排序,快速排序等。 看名字都知道快速排序是目前公认的一种比较好的排序算法。因为他速度很快,所以系统也在库里实现这个算法,便于我们的使用。 这就是qsort函数(全称quicksort)。它是ANSI C标准中提供的,其声明在stdlib... 阅读全文

posted @ 2015-08-29 15:38 SteveWang 阅读(9614) 评论(0) 推荐(2) 编辑

摘要:来源:《算法竞赛入门经典》例题5.2.2 题目:输入不超过1000的正整数n,输出n!=1*2*3*…*n的精确结果。 样例输入:30 样例输出:265252859812191058636308480000000 分析:为了保存结果,需要分析1000!有多大。用计算器算一算不难知道,10... 阅读全文

posted @ 2015-08-28 16:25 SteveWang 阅读(815) 评论(0) 推荐(1) 编辑

摘要:来源:《算法竞赛入门经典》例题5.2.1 原题:很多学生在学习加法时,发现”进位“特别容易出错。你的任务是计算两个整数在相加时需要多少次进位。你编制的程序应当可以连续处理多组数据,直到读到两个0(这是输入结束标记)。假设输入的整数都不超过9位。 样例输入:123 456 样例输出:0 样例输入:55 阅读全文

posted @ 2015-08-28 12:31 SteveWang 阅读(1139) 评论(0) 推荐(0) 编辑

摘要:来源:《算法竞赛入门经典》例题5.1.3 题目:如果一个字符串可以由某个长度为k的字符串重复多次得到,我们说该串以k为周期。例如,abcabcabcabc以3为周期(注意,它也以6和12为周期)。输入一个长度不超过80的串,输出它的最小周期。 样例输入:HoHoHo 样例输出:2 分析:... 阅读全文

posted @ 2015-08-27 19:33 SteveWang 阅读(3256) 评论(0) 推荐(2) 编辑

摘要:圆周率Pi tan(Pi/4)=1 => Pi=4*arctan(1) 反正切函数arctan()在C语言里表示为atan(),为保证精度取圆周率的代码如下: const double Pi = 4.0 * atan(1.0);四舍五入 有时我们需要通过四舍五入避免浮点数误差。如100经... 阅读全文

posted @ 2015-08-25 19:00 SteveWang 阅读(1136) 评论(0) 推荐(0) 编辑

摘要:'x' 属于基本类型(char)字符类型 由1个字符组成('x') "x"属于派生类型(char数组)字符串类型 由2个字符组成('x'和空字符'\0') strlen函数原型为 extern int strlen(char *s) ,用来计算字符串s的长度(不包括'\0'),使用时需要引入头文件  阅读全文

posted @ 2015-08-24 14:31 SteveWang 阅读(781) 评论(0) 推荐(0) 编辑

摘要:C语言提供一种特殊的运算符——逗号运算符。用它将两个(或多个)表达式连接起来。 如:3+5,6+8 上式称为逗号表达式。逗号表达式的一般形式为 表达式1,表达式2 逗号表达式的求解过程是:先求解表达式1,再求解表达式2。整个逗号表达式的值是表达式2的值 例如,上面的逗号表... 阅读全文

posted @ 2015-08-23 11:31 SteveWang 阅读(2260) 评论(0) 推荐(0) 编辑

摘要:例题3-1 开灯问题 题目:有n盏灯,编号为1~n。第1个人把所有灯打开,第2个人按下所有编号为2的倍数的开关(这些灯将被关掉),第3个人按下所有编号为3的倍数的开关(其中关掉的灯将被打开,开着的灯将被关闭),依此类推。一共k个人,问最后有那些灯开着?输入:n和k,输出开着的灯编号。k<=n<=10 阅读全文

posted @ 2015-08-17 18:03 SteveWang 阅读(844) 评论(1) 推荐(0) 编辑

摘要:int a[15] = {0}; 编译器会把第一个初始化值(这里是0)赋给数组的第一个元素,然后用默认值0赋给其余的元素。如果没有给出初始值,编译器不会去做初始化工作。这样简洁的方式让代码更加高效。 另一种,就是memset函数(在string.h中定义)的使用。例如上面的数组,可以memset... 阅读全文

posted @ 2015-08-15 16:10 SteveWang 阅读(9130) 评论(0) 推荐(1) 编辑

摘要:例2-4 文件读写(freopen重定向) 题目:输入一些整数,求出他们的最小值、最大值和平均值(保留3位小数)。输入保证这些数都是不超过1000的整数。 样例输入:2 8 3 5 1 7 3 6 样例输出:1 8 4.375#include#define INF 1000000000int ... 阅读全文

posted @ 2015-08-14 17:29 SteveWang 阅读(513) 评论(0) 推荐(0) 编辑

摘要:例1-2 三位数反转 题目:程序每次读入一个正三位数,然后输出逆序的数字。注意,当输入的数字含有结尾的0时,输出不应带有前导的0。比如输入700,输出应该是7;输入740,输出应该是47。 分析:用%10可以得到个位数,用/10%10可以得到十位数,用/100可以得到百位数。 输入样例: 1... 阅读全文

posted @ 2015-08-14 17:25 SteveWang 阅读(519) 评论(0) 推荐(0) 编辑

摘要:陷阱一if(0.1+0.1+0.1 == 0.3) printf("equal\n"); else printf("not equal\n"); 会输出"equal"吗?不会!实际浮点数运算时,0.1+0.1+0.1 != 0.3 陷阱二double i;for(i... 阅读全文

posted @ 2015-08-14 11:22 SteveWang 阅读(662) 评论(0) 推荐(0) 编辑

摘要:C语言输出特殊字符 C语言转义字符意义大体同于前面的C#转义字符,这里列出用c语言,输出%d、\n等特殊字符的方法。#include int main(){ printf("%%d");//在屏幕中输出%d printf("\\n");//在屏幕中输出\n printf(... 阅读全文

posted @ 2015-08-13 15:36 SteveWang 阅读(2276) 评论(0) 推荐(0) 编辑

摘要:scanf的使用 使用scanf需要记住下面两条简单规则: 如果使用scanf来读取某种基本变量类型(%d,%c,%f,%lf)的值,请在变量名之前加上一个& 如果使用scanf把一个字符串(%s)读进一个字符数组中,应不要使用& scanf与空白字符(空格、换行符和制表符) scan... 阅读全文

posted @ 2015-08-11 20:28 SteveWang 阅读(4185) 评论(0) 推荐(1) 编辑