c
JoyceCoder
质量和效率是基本的自律
展开
-
c++ 输入注意
学C++的时候,这几个输入函数弄的有点迷糊;这里做个小结,为了自己复习,也希望对后来者能有所帮助,如果有差错的地方还请各位多多指教(本文所有程序均通过VC 6.0运行)转载请保留作者信息; 1、cin 1、cin.get() 2、cin.getline() 3、getline() 4、gets() 5、getchar() 1、cin>> 用法1:最基本,也是最常用的用法,输转载 2016-05-26 14:57:51 · 305 阅读 · 0 评论 -
求字典序的下一个全排列
http://blog.csdn.net/zwb8848happy/article/details/7318160 这是一个博主用int型数组实现的我比较倾向于字符串,字符串的逆转更方便一点 原理:百度#include<stdio.h>#include<stdlib.h>#include<string.h>void rev(char s[],int l,int len);int main(原创 2017-03-22 13:01:32 · 970 阅读 · 0 评论 -
堆排序(C语言实现)迭代
首先分清二叉树和堆的区别 堆 可以被定义为一棵二叉树,树的节点中包含键(每个节点一个键),并且满足下面两个条件: (1)树的形状:简称为完全二叉树,这意味着,树的每一层都是满的,除了最后一层最右边的元素可能缺位。 (2)父母优势:堆特性(heap property)每一个节点的键值都要大于或者等于它子女的键(对于任何叶子我们认为这个条件都是自动满足的)只存在一棵N个节点的完全二叉树。原创 2017-03-22 21:58:39 · 1019 阅读 · 0 评论 -
约瑟夫环
百度搜索约瑟夫问题递推式是: J(2k)=2J(k)-1 J(2k+1)=2J(k)+1但是其实最优雅的方法就是用位数 我们可以对n本身做一次向左的循环移位来得到J(n)例如:j(6)=j(110)=101=5#include<stdio.h>#include<stdlib.h>int main(){ int n; scanf("%d",&n); int num[1原创 2017-03-22 22:36:55 · 483 阅读 · 0 评论 -
北航计算机机试16逆序数
题目描述 给定一个数n,将这个数的各位顺序颠倒,称为逆序数m。 例如1234的逆序数是4321。 输入 输入一个数n(0 < n<1000000000),已知输入开头不包含多余的0。 输出 如果m是n的k倍(k为整数),那么输出n*k=m。 如果m不是n的整数倍,那么输出n和n的逆序数。 样例输入 1234 1089 23200原创 2017-03-14 21:24:07 · 2397 阅读 · 0 评论 -
北航计算机机试14阶乘数
输入一个正整数,输出时,先输出这个数本身,跟着一个逗号,再输出这个数的各位数字的阶乘和,等号,阶乘和的计算结果,并判断阶乘和是否等于原数,如果相等输出Yes,否则输出No。题目说明输入的正整数以及其各位阶乘和都不会超出int型的表示范围。 输入样例1: 145 输出样例1: 145,1!+4!+5!=145 Yes 输入样原创 2017-03-14 21:30:13 · 866 阅读 · 0 评论 -
北航计算机机试14五子棋
题目描述: 输入一个19*19的矩阵,只包含数字0、1、2,表示两人下五子棋的棋牌状态,1、2分别表示两人的棋子,0表示空格。要求判断当前状态下是否有人获胜(横向、竖向或者斜线方向连成5个同色棋子)。题目说明输入样例保证每条线上至多只有连续5个同色棋子,并且保证至多只有1人获胜。如果有人获胜,输出获胜者(1或2)加一个冒号,接着输出获胜的五连珠的第一个棋子的坐标,从上到下从左到右序号最小的为第翻译 2017-03-14 21:39:52 · 1440 阅读 · 0 评论 -
北航计算机机试14排版
输入若干行字符,表示某电影的演职员表,每行只有一个冒号,冒号前面是职位,冒号后面是姓名,要求把各行冒号对齐,删除多余空格后输出。 先输入一个字,表示排版要求的冒号位置该位置号保证比各行冒号前的最大字符数还要大。再输入若干行字符,最多50行,每行最多100个字符,除空格、制表符和回车之外都是有效字符,要求每行的冒号处于格式要求的位置,冒号两边与有效单词之间各有一个空格,冒号前面的单词之间只有一个原创 2017-03-15 18:01:33 · 892 阅读 · 0 评论 -
北航计算机机试13科学计数法
给出一个标准输入的正数(开头末尾没有多余的0),输出其科学计数法表示结果。比如:输入0.000002,输出2e-6;输入123.456,输出1.23456e2;输入123456,输出1.23456e2#include<stdio.h>#include<string.h>#define N 100//某一步走不动的时候,change the way of yourselfint main()翻译 2017-03-15 20:32:07 · 830 阅读 · 0 评论 -
北航计算机机试12统计关键字位置
统计关键字出现位置 输入: 一行标准c语言代码(字符个数小于300),统计出该字符串中关键字的if,while,for所在的位置,按照关键字出现的顺序依次输出。注意双引号内的不需要统计。 输入:一行标准c语言代码,字符个数小于300 输出: 关键字if,while,for对应的位置,按照关键字出现的顺序依次输出。输出格式为:关键字,后跟冒号,然后是出现的位置。扫描到关键原创 2017-03-15 22:53:27 · 723 阅读 · 0 评论 -
北航计算机机试11替换矩阵
【问题描述】 先输入两个矩阵A和B,然后输入替换位置(左上角),编写程序将矩阵A中从替换位置开始的子矩阵(与B同样大小)替换为B,并输出替换后的矩阵。 【输入形式】 从控制台先输入矩阵A的行数和列数(行数和列数均大于等于1,小于等于20),然后在新的行上输入矩阵A的各行数字(以一个空格分隔的整数)。再以同样的方式输入矩阵B。最后输入替换位置(用一个空格分隔的两个整数表示,行数和列数原创 2017-03-16 19:35:19 · 1128 阅读 · 0 评论 -
北航计算机机试08旋转矩阵
旋转矩阵 任意输入两个9阶以下矩阵,要求判断第二个是否是第一个的旋转矩阵,如果是,输出旋转角度(0、90、180、270),如果不是,输出-1。 要求先输入矩阵阶数,然后输入两个矩阵,每行两个数之间可以用任意个空格分隔。行之间用回车分隔,两个矩阵间用任意的回车分隔。(60分) 我一直觉得这句话有含义…… 思路:旋转一次则是 旋转90°:a[i][j]=a[j][n-1-原创 2017-03-16 20:57:13 · 549 阅读 · 0 评论 -
北航计算机机试11孪生数
【问题描述】 孪生数定义: 如果 A 的约数(因数,包含1,但不包含A本身)之和等于 B , B 的约数(因数)之和等于 A , A 和 B 称为孪生数(A和B不相等)。试找出正整数 M 和 N 之间的孪生数。 输入: 从控制台输入两个正整数M和N(1<=M#include<stdio.h>#include<time.h>int main(){ int m,n;原创 2017-03-16 22:45:06 · 936 阅读 · 0 评论 -
math.h常用数学函数
输出格式 C语言提供了以下的数学函数,要使用这些函数时,在程序文件头必须加入: < math.h > 函数说明 double sin(double x) x 的正弦函数值 double cos(double x) x 的余弦函数值 double tan(double x) x 的正切函数值 double asin(double x) x 的反正弦函数值 sin-1x,x的值在转载 2017-03-22 10:53:32 · 2903 阅读 · 0 评论 -
code tips
常用头文件mathiomanipalgorithmfstream常用文件输入(之前已总结) 定义输入流ifstream fin;fin.open("filename.txt");int x;fin>>x;c/c++输出格式总结 设置域宽setw() 设置小数点后精度setprecision() 后位自动补0 fixed 输出格式右对齐setiosflags(iOS::right原创 2017-09-21 09:47:04 · 196 阅读 · 0 评论 -
string.h C语言 函数集合
字符串拷贝1 @函数名称: strdup 函数原型: char *strdup(const char *s) 函数功能: 字符串拷贝,目的空间由该函数分配 函数返回: 指向拷贝后的字符串指针 参数说明: src-待拷贝的源字符串 所属文件: #include <stdio.h>#include <string.h>#include <alloc.h>int转载 2017-03-22 10:50:12 · 783 阅读 · 0 评论 -
qsort具体实现
先上几个例子: 对int型一维数组的排序 对结构体一级排序qsort函数是C语言的函数,所以C++的去看sort函数 其头文件是 < stdlib.h > qsort函数相当于一个基本的快排函数,其原理是三分组(具体的可以去百度)根据大于,等于,小于来分别划分qsort函数的函数声明: void qsort( void * base, size_t num, size_t width原创 2017-03-22 09:59:57 · 754 阅读 · 0 评论 -
北航计算机机试06成绩排序
输入几个学生的姓名和成绩 然后按照规定的格式 按照成绩的高低 顺序输出这个可以构造一个结构体数组 将data直接排序,输出就可以了,按照规定的格式… 格式也没写出来typedef struct stu_score{ char name[20]; int score;}STUDENT;STUDENT s[20];for(int i=0;i<20;i++){scanf("%原创 2017-03-19 21:23:27 · 536 阅读 · 0 评论 -
动态规划(算法+理论) ★最短路径
首先介绍动态规划的概念: ①问题是由交叠的自问题构成的,是对给定问题求解的递推关系中的相同类型的*更小子问题的解*dp+回溯 ②从顶至下,避免计算不需要计算的小解(记忆) ③求解最优化问题可以用动态规划 动态规划下笔写代码前先去顶递推式 直接看实例: 一、币值最大化问题 给定一排n个硬币,其面值均为正整数c1,c2,c3……cn,这些整数并不一定两两不同,请问如何选择硬币,使得在其原始原创 2016-05-26 16:30:18 · 4598 阅读 · 0 评论 -
北航计算机机试11字符串扩展
【问题描述】 从键盘输入包含扩展符’-‘的字符串,将其扩展为等价的完整字符,例如将a-d扩展为abcd,并输出扩展后的字符串。 要求:只处理[a-z]、[A-Z]、[0-9]范围内的字符扩展,即只有当扩展符前后的字符同时是小写字母、大写字母或数字时才进行扩展,其它情况不进行扩展,原样输出。例如:a-R、D-e、0-b、4-B等字符串都不进行扩展。 【输入形式】 从键盘输入包含原创 2017-03-16 21:50:01 · 642 阅读 · 0 评论 -
北航计算机机试08素数
输入一个整数,要求输出所有从1到这个整数之间个位为1的素数,如果没有则输出-1(30分)#include<stdio.h>#include<stdlib.h>int main(){ int max; int len,i,j; int flag; while(scanf("%d",&max)!=EOF) { flag=0;原创 2017-03-17 18:33:23 · 318 阅读 · 0 评论 -
北航计算机机试15相亲数
北航11年孪生数你会发现这两个惊人的相似,对!历史就是这么惊人的相似哈哈哈 【题意】 如果对于两个大于 1 的正整数 x 和 y,x 除了本身以外的因子之和等于 y,y 除了本身以外的 因子之和等于 x,则称 x 和 y 是一对相亲数。比如 220 除了本身以外的因子之和 110+55+44+22+20+11+10+5+4+2+1=284,而 284 除了 本身以外的因子之和原创 2017-03-17 18:59:13 · 1066 阅读 · 1 评论 -
北航计算机机试13简单版八皇后
如题,确实是简化了不少,连思路都说出来了…. 按这个思路来的话#include<stdio.h>#include<string.h>int main(){ int a[8][8]; char m; int i,j,k; int l,r; int flag=0; for(i=0;i<8;i++) { for(原创 2017-03-17 20:49:47 · 955 阅读 · 0 评论 -
北航计算机机试07字符串统计
从输入的字符串中,统计空格,回车,TAB出现的次数#include <stdio.h>#include <string.h>int main(){int space_count,enter_count,tab_count;space_count = enter_count=tab_count=0;char ch,buf[1024];//设置数组容量值为最大///////////////转载 2017-03-18 16:00:42 · 503 阅读 · 0 评论 -
北航计算机机试09字符串的查找删除
字符串的查找删除 给定文件filein.txt 按要求输出fileout.txt。 输入:无空格的字符串 输出:将filein.txt删除输入的字符串(不区分大小写),输出至fileout.txt sample 输入:in 输出:将filein.txt 中的In、IN、iN、in删除,每行中的空格全部提前至行首,输出至fileout.txt filein.t原创 2017-03-18 20:36:10 · 534 阅读 · 0 评论 -
北航计算机机试07排序10归并字符串
将两个升序字符串合并成一个升序字符串,相同的字母,出现一次。个人认为:首先输入的一定是升序的字符串,所以没有重复的字母,那么相同的字母只有在比较的时候才能发现,两个升序的字符串合并成一个字符串,是属于线性表的归并排序可以用数组来存储线性表,代码如下#include<stdio.h>#include<string.h>int main(){ char a[100]; char b原创 2017-03-19 20:21:12 · 460 阅读 · 0 评论 -
北航计算机机试10判断整数数组相同06排序与数组内容结合
两个整数数组(无序,可有重复元素),判断两个整数数组是否完全相同(重复元素的话,重复次数也要相同)不知道谁有完整的题目。。 我对北航题目的理解能力有点差–首先无序重复,若判断是否完全相同的话,最简单的方法我觉得就是先比较数组长度,长度相同的话再排序,然后依次比较,有不同就return,最坏的情况下就是前n-1个元素都相同,第n个元素不同,比较了n次,但最坏情况下也是线性的,算上排序的时间复杂度应原创 2017-03-19 21:03:32 · 424 阅读 · 0 评论 -
北航计算机机试09数组排序
题目描述: 输入一个数组的值,求出各个值从小到大排序后的次序。 输入: 输入有多组数据。 每组输入的第一个数为数组的长度n(1<=n<=10000),后面的数为数组中的值,以空格分割。 输出: 各输入的值按从小到大排列的次序(最后一个数字后面没有空格)。 样例输入: 4 -3 75 12 -3 样例输出: 1 3 2 1912kb原创 2017-03-19 22:26:51 · 542 阅读 · 0 评论 -
北航计算机机试08字符串匹配
题目描述: 读入数据string[ ],然后读入一个短字符串。要求查找string[ ]中和短字符串的所有匹配,输出行号、匹配字符串。匹配时不区分大小写,并且可以有一个用中括号表示的模式匹配。如“aa[123]bb”,就是说aa1bb、aa2bb、aa3bb都算匹配。 输入: 输入有多组数据。 每组数据第一行输入n(1<=n<=1000),从第二行开始输入n个字符串(原创 2017-03-20 15:35:01 · 658 阅读 · 0 评论 -
北航计算机机试09迭代求立方根
题目描述: 立方根的逼近迭代方程是 y(n+1) = y(n)*2/3 + x/(3*y(n)*y(n)),其中y0=x.求给定的x经过n次迭代后立方根的值。 输入: 输入有多组数据。 每组一行,输入x n。 输出: 迭代n次后的立方根,double精度,保留小数点后面六位。 样例输入: 3000000 28 样例输出: 144.22495原创 2017-03-20 16:34:49 · 614 阅读 · 0 评论 -
北航计算机机试10泰勒公式cos(x)
利用泰勒公式求cos(x)=1-x2/2!+x4/4!-……公式已给,重要的就是注意细节(比如阶乘的存储最好用double类型),二级C语言的难度。学校给的答案,,题目也模糊,只要懂怎么写就行 看看 即可 以7的精度算的#include <stdio.h>#include <math.h>#define PI 3.14159265358979323846int main(){ in转载 2017-03-20 16:48:02 · 1688 阅读 · 0 评论 -
北航计算机机试15窗口点击模拟
明天出发! 【题意】 在计算机屏幕上,有 N 个窗口。窗口的边界上的点也属于该窗口。窗口之间有层次的区别, 在多于一个窗口重叠的区域里,只会显示位于顶层的窗口里的内容。当你用鼠标点击某个点 的时候,若其在窗口内,你就选择了处于被点击位置所属的最顶层窗口,并且这个窗口就会 被移到所有窗口的顶层,而剩余的窗口的层次顺序不变,如果你点击的位置不属于任何窗口 计算机就会忽略原创 2017-03-20 22:50:26 · 3282 阅读 · 1 评论 -
堆和栈的区别
堆栈:一种数据结构、一个在程序运行时用于存放的地方,这可能是很多初学者的认识,因为我曾经就是这么想的和汇编语言中的堆栈一词混为一谈。我身边的一些编程的朋友以及在网上看帖遇到的朋友中有好多也说不清堆栈,所以我想有必要给大家分享一下我对堆栈的看法,有说的不对的地方请朋友们不吝赐教,这对于大家学习会有很大帮助。数据结构的栈和堆首先在数据结构上要知道堆栈,尽管我们这么称呼它,但实际上堆栈是两种数据转载 2018-01-12 20:13:10 · 302 阅读 · 0 评论