随笔分类 -  算法

一些简单有趣算法
摘要:问题:给定一个整数N,那么N的阶乘N!末尾有多少个0? 比如:N=10,N!=3628800,N!的末尾有2个0,写出算法。回答:int countZero(int N) { int ans = 0; int maxInt = 1000000000;//10^9 int tmpn = N; whil... 阅读全文
posted @ 2015-05-25 09:10 chaoer 阅读(410) 评论(0) 推荐(0)
摘要:问题:在25匹马中,挑选最快的三匹马,每场比赛最多只能有5匹马一起参赛。请问最少需要进行多少场比赛?回答:至少需要进行7场比赛。给25匹马编号:A1 A2 A3 A4 A5 B1 B2 B3 B4 B5C1 C2 C3 C4 C5 D1 D2 D3 D4 D5E1 E2 E3 E4 E5按照A1-A... 阅读全文
posted @ 2015-05-25 08:37 chaoer 阅读(182) 评论(0) 推荐(0)
摘要:问题:Tetris (Russian: Тeтрис) is a puzzle video game originally designed and programmed by Alexey Pajitnov in the Soviet Union. The Tetris game is a pop... 阅读全文
posted @ 2015-05-25 08:17 chaoer 阅读(809) 评论(0) 推荐(0)
摘要:问题:打印出杨辉三角形的前n行(nint main() { int n; scanf("%d",&n); int arr[25][25]; int i,j; //计算每一行的值 arr[1][1] = 1; for( i=2; i<=20; i++){ arr[i][1] = arr[i][i] ... 阅读全文
posted @ 2015-05-24 08:46 chaoer 阅读(237) 评论(0) 推荐(0)
摘要:问题:Write a program to solve a Sudoku puzzle by filling the empty cells.Empty cells are indicated by the character '.'.You may assume that there will b... 阅读全文
posted @ 2015-05-24 08:37 chaoer 阅读(202) 评论(0) 推荐(0)
摘要:问题:输入一个正整数(<10000),输出颠倒后的整数。【样例输入】1234【样例输出】4321回答:#include int main(){ int num ; scanf("%d",&num); int x,y,z,n,result; if(num > 999) { x = num / 1000... 阅读全文
posted @ 2015-05-23 10:40 chaoer 阅读(255) 评论(0) 推荐(0)
摘要:问题:InputThe first line of input contains a single integer P, (1 ≤ P ≤ 1000), which is the number of data sets that follow. Each data set consists of a... 阅读全文
posted @ 2015-05-23 10:27 chaoer 阅读(208) 评论(0) 推荐(0)
摘要:问题:有一扇门, 一开始是好的, 一次来了n个人, 每个人有p的概率把门弄坏, 维修门的费用为a, 被一个人发现门坏的罚款为b, 求期望最小花费。回答:用f[i][0]表示第i个人来之前门坏, 到结束时的期望最小花费, f[i][1]则表示门好. 显然f[n][0] = min(a, b), f[n... 阅读全文
posted @ 2015-05-22 08:47 chaoer 阅读(157) 评论(0) 推荐(0)
摘要:问题:设有n 个程序{1,2,…, n }要存放在长度为L的磁带上。程序i存放在磁带上的长度是i l , 1 ≤i ≤n。程序存储问题要求确定这n 个程序在磁带上的一个存储方案,使得能够在磁带上存储尽可能多的程序。对于给定的n个程序存放在磁带上的长度,编程计算磁带上最多可以存储的程序数。回答:题目要... 阅读全文
posted @ 2015-05-22 08:27 chaoer 阅读(573) 评论(0) 推荐(0)
摘要:问题:输入:输入数据有多组,每组的第一行是三个整数T,S和D,表示有T条路,和草儿家相邻的城市的有S个,草儿想去的地方有D个; 接着有T行,每行有三个整数a,b,time,表示a,b城市之间的车程是time小时;(1=#include#include#includeusing namespace s... 阅读全文
posted @ 2015-05-22 08:17 chaoer 阅读(274) 评论(0) 推荐(0)
摘要:问题:给定两个字符串,求它们前后重叠的最长子串的长度,比如”abcde”和“cdefg”是”cde”,长度为3。输入: 输入可能包含多个测试案例。 对于每个测试案例只有一行, 包含两个字符串。字符串长度不超过1000000,仅包含字符’a'-’z'。输出: 对应每个测试案例,输出它们前后重叠的最长子... 阅读全文
posted @ 2015-05-20 08:53 chaoer 阅读(363) 评论(0) 推荐(0)
摘要:问题:写一个函数,求两个整数的之和,要求在函数体内不得使用+、-、×、÷。回答:这题本质是考察对位运算的理解和运用。首先我们可以分析人们是如何做十进制的加法的,比如是如何得出5+17=22这个结果的。实际上,我们可以分成三步的:第一步只做各位相加不进位,此时相加的结果是12(个位数5和7相加不要进位... 阅读全文
posted @ 2015-05-20 08:41 chaoer 阅读(245) 评论(0) 推荐(0)
摘要:问题:我们经常会遇见这些问题比如给你一个容量为5升的杯子和一个容量为3升的杯子,水不限使用,要求精确得到4升水并写出算法。回答:1) 直接以简答的方式给定方案这个比较简单,即便是不知道什么原理,也可以很快凑出来。假设两个杯子分别为x 5升杯, y 3升杯 : 装满 x ; x -> y ;清空Y ;... 阅读全文
posted @ 2015-05-20 08:26 chaoer 阅读(1488) 评论(1) 推荐(0)
摘要:问题:把源字符串拷贝到目的字符串,如果指定关键字,则以该关键字结束(不包括关键字本身),如果拷贝失败,则得到空串。具体要求:实现如下函数原型SafeStrcpy2KeyWord(),并在代码中调用该函数实现上述功能。该函数的实现要考虑各种可能的参数取值,以确保程序不出现崩溃。int SafeStrc... 阅读全文
posted @ 2015-05-19 08:43 chaoer 阅读(531) 评论(0) 推荐(0)
摘要:问题:将一个链表反转写出算法。回答:方法一:#include#include/* 链表节点 */struct node{ int data; struct node* next;};/* 反转单链表. 分别用3个指针,指向前一个,当前,下一个 */static void reverse(struct... 阅读全文
posted @ 2015-05-19 08:37 chaoer 阅读(169) 评论(0) 推荐(0)
摘要:问题:通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串过滤程序,若字符串中出现多个相同的字符,将非首次出现的字符过滤掉。比如字符串“abacacde”过滤结果为“abcde”。要求实现函数:void stringFilter(const char *pInputStr, long l... 阅读全文
posted @ 2015-05-18 11:04 chaoer 阅读(161) 评论(0) 推荐(0)
摘要:问题:给定一个十进制整数N,求出从1到N的所有整数中出现”1”的个数。 例如:N=2时 1,2出现了1个 “1” 。N=12时 1,2,3,4,5,6,7,8,9,10,11,12。出现了5个“1”。回答:#include#include#includelong long int Count(lon... 阅读全文
posted @ 2015-05-17 16:39 chaoer 阅读(212) 评论(0) 推荐(0)
摘要:问题:There are n points in the plane. Your task is to pick k points (k>=2), and make the closest points in these k points as far as possible. 输入:For eac... 阅读全文
posted @ 2015-05-17 16:14 chaoer 阅读(525) 评论(0) 推荐(0)
摘要:问题:输入三角形三边长,判断是否是直角三角形写出算法。InputThe inputs start with a line containing a single integer n. Each of the n following lines contains one test case. Each... 阅读全文
posted @ 2015-05-17 16:02 chaoer 阅读(657) 评论(0) 推荐(0)
摘要:问题:在嵌入式系统开发中,Modbus协议是工业控制系统中广泛应用的一种协议。本题用来简单模拟Modbus协议,只需根据条件生成符合该协议的数据帧,并解析所获取的数据。假设设备使用的协议发送数据格式如下: 其中前四项将在输入条件中给出,最后一项为CRC校验和,需根据前四项的数据,按照CRC算法... 阅读全文
posted @ 2015-05-16 23:37 chaoer 阅读(458) 评论(0) 推荐(0)