C语言
文章平均质量分 66
OrdinaryCrazy
这里是张劲暾的CSDN博客
展开
-
最大子数组问题的暴力解法,递归解法,动态规划解法和暴力-递归混合解法
#include <stdio.h>#include <stdlib.h>#include <time.h>#include <math.h>#define SIZE 5000#define RANDOM_LIMIT 50#define THRESHOLD 22#define TESTTIMES 3double Myrandom(...原创 2018-09-26 21:24:02 · 790 阅读 · 0 评论 -
OpenJudge百炼-2737-大整数除法-C语言-高精度计算
描述:求两个大的正整数相除的商。输入:第1行是被除数,第2行是除数。每个数均不超过100位。输出:一行,相应的商的整数部分样例输入:237624样例输出:99/*************************************************文件名:百炼-2737**Copyright (c) 2015-2025 Ordinary原创 2017-08-14 16:44:55 · 2525 阅读 · 1 评论 -
OpenJudge百炼-2706-麦森数-C语言-高精度计算
描述:形如2p-1的素数称为麦森数,这时P一定也是个素数。但反过来不一定,即如果P是个素数。2p-1不一定也是素数。到1998年底,人们已找到了37个麦森数。最大的一个是P=3021377,它有909526位。麦森数有许多重要应用,它与完全数密切相关。任务:从文件中输入P (1000输入:文件中只包含一个整数P(1000输出:第1行:十进制高精度数2p-1的位数。第2-原创 2017-08-14 18:02:46 · 1333 阅读 · 0 评论 -
OpenJudge百炼-2692-假币问题-C语言-枚举
描述:赛利有12枚银币。其中有11枚真币和1枚假币。假币看起来和真币没有区别,但是重量不同。但赛利不知道假币比真币轻还是重。于是他向朋友借了一架天平。朋友希望赛利称三次就能找出假币并且确定假币是轻是重。例如:如果赛利用天平称两枚硬币,发现天平平衡,说明两枚都是真的。如果赛利用一枚真币与另一枚银币比较,发现它比真币轻或重,说明它是假币。经过精心安排每次的称量,赛利保证在称三次后确定假币。输入原创 2017-08-14 22:26:00 · 1826 阅读 · 0 评论 -
OpenJudge百炼-2810-完美立方-Cyuyan-枚举
描述:形如a3= b3 + c3 + d3的等式被称为完美立方等式。例如123= 63 + 83 + 103 。编写一个程序,对任给的正整数N (N≤100),寻找所有的四元组(a, b, c, d),使得a3 = b3 + c3 + d3,其中a,b,c,d 大于 1, 小于等于N,且b输入:一个正整数N (N≤100)。输出:每行输出一个完美立方。输出格式为:Cube原创 2017-08-14 22:51:04 · 783 阅读 · 0 评论 -
OpenJudge百炼-2812-恼人的青蛙-C语言-枚举与剪枝
描述:在韩国,有一种小的青蛙。每到晚上,这种青蛙会跳越稻田,从而踩踏稻子。农民在早上看到被踩踏的稻子,希望找到造成最大损害的那只青蛙经过的路径。每只青蛙总是沿着一条直线跳越稻田,而且每次跳跃的距离都相同。如下图所示,稻田里的稻子组成一个栅格,每棵稻子位于一个格点上。而青蛙总是从稻田的一侧跳进稻田,然后沿着某条直线穿越稻田,从另一侧跳出去。如下图所示,可能会有多只青蛙从稻田穿越。青蛙的每一跳都恰原创 2017-08-15 11:57:47 · 784 阅读 · 0 评论 -
OpenJudge百炼-2785-武林-C语言-模拟
描述:在一个有12行12列的方形的武林世界里,少林、武当和峨嵋三派的弟子们在为独霸武林而互相厮杀。武林世界的第一行的一列格子的坐标是(1, 1),第一行第二列坐标是(1, 2)……右下角的坐标为(12, 12)。如图:少林派弟子总是在同一列回不停地行走。先往下走,走到头不能再走时就往上走,再到头则又往下走……比如,(1, 1) -> (2, 1) -> (3, 1)。武当派弟子总是原创 2017-08-15 23:26:13 · 381 阅读 · 0 评论 -
OpenJudge百炼-2967-特殊日历计算-C语言-日期处理
描述:有一种特殊的日历法,它的一天和我们现在用的日历法的一天是一样长的。它每天有10个小时,每个小时有100分钟,每分钟有100秒。10天算一周,10周算一个月,10个月算一年。现在要你编写一个程序,将我们常用的日历法的日期转换成这种特殊的日历表示法。这种日历法的时、分、秒是从0开始计数的。日、月从1开始计数,年从0开始计数。秒数为整数。假设 0:0:0 1.1.2000 等同于特殊日历法的原创 2017-09-15 22:19:22 · 1295 阅读 · 2 评论 -
C语言便捷函数
stdlib.h1,快速排序函数qsort:void qsort(void* base,int nelem,unsigned int width,int (*pfCompare)(const void *,const void *))可以对任何类型的一维数组排序,base是待排序数组的指针,nelem是待排序元素的个数,width是待排序元素的大小(以字节为单位),pfCompare是原创 2017-08-07 08:20:43 · 617 阅读 · 0 评论 -
百炼-2817-木棒-C语言-递归
这个问题就很有意思了,他的状态不再是用单变量表示的,要仔细考虑状态的递归。/********************************************************文件名:百炼-2817**Copyright (c) 2015-2025 OrdinaryCrazy**创建人:OrdinaryCrazy**日期:20170806**描述:百炼2817参考答案*原创 2017-08-07 10:08:25 · 556 阅读 · 0 评论 -
百炼-1664-放苹果-C语言-递归算法入门
递归算法入门题,不过如果数字再大一点可能要考虑记忆化搜索了。/****************************************************文件名:百炼-1664**Copyright (c) 2015-2025 OrdinaryCrazy**创建人:OrdinaryCrazy**日期:20170806**描述:百炼-1664参考答案**版本:1.0**原创 2017-08-06 21:37:39 · 2906 阅读 · 0 评论 -
百炼2786-Pell数列-C语言-矩阵乘法-同余类
很不错的一道题,除了矩阵快乘以外,还有线性代数和代数结构的相关知识。/**************************************************文件名:**Copyright (c) 2010-2020 OrdinaryCrazy**创建人:OrdinaryCrazy**日期:20170804**描述:百炼-2786参考答案**版本:1.0*******原创 2017-08-04 20:05:15 · 903 阅读 · 0 评论 -
OpenJudge百炼-1833-排列-C语言-模拟
描述题目描述:大家知道,给出正整数n,则1到n这n个数可以构成n!种排列,把这些排列按照从小到大的顺序(字典顺序)列出,如n=3时,列出1 2 3,1 3 2,2 1 3,2 3 1,3 1 2,3 2 1六个排列。任务描述:给出某个排列,求出这个排列的下k个排列,如果遇到最后一个排列,则下1排列为第1个排列,即排列1 2 3…n。比如:n = 3,k=2 给出排列2 3 1,原创 2017-08-12 00:14:24 · 698 阅读 · 0 评论 -
OpenJudge百炼-2981-大整数加法-C语言-高精度计算
描述:求两个不超过200位的非负整数的和。输入:有两行,每行是一个不超过200位的非负整数,可能有多余的前导0。输出:一行,即相加后的结果。结果里不能有多余的前导0,即如果结果是342,那么就不能输出为0342。样例输入:2222222222222222222233333333333333333333样例输出:55555555555555555555原创 2017-08-12 17:27:18 · 2225 阅读 · 0 评论 -
OpenJudge百炼-2980-大整数乘法-C语言-高精度计算
描述:求两个不超过200位的非负整数的积。输入:有两行,每行是一个不超过200位的非负整数,没有多余的前导0。输出:一行,即相乘后的结果。结果里不能有多余的前导0,即如果结果是342,那么就不能输出为0342。样例输入:1234567890098765432100样例输出:1219326311126352690000#include #includ原创 2017-08-13 16:59:57 · 1196 阅读 · 0 评论 -
百炼-2773-采药-C语言-01背包
典型而传统的01背包解决办法,没有做任何的优化。/**************************************************文件名:百炼-2773**Copyright (c) 2010-2020 OrdinaryCrazy**创建人:OrdinaryCrazy**日期:20170805**描述:百炼-2773参考答案**版本:3.0**********原创 2017-08-05 23:34:21 · 2383 阅读 · 0 评论 -
百炼-1088-滑雪-C语言-动态规划-记忆化搜索
典型而朴素的记忆化搜索/*******************************************文件名:百炼-1088**Copyright (c) 2010-2020 OrdinaryCrazy**创建人:OrdinaryCrazy**日期:20170806**描述:百炼1088参考答案**版本:1.0*******************************原创 2017-08-06 10:05:02 · 1460 阅读 · 0 评论 -
百炼-2756-二叉树-C语言-递归
简单入门的递归算法。/********************************************文件名:百炼-2756**Copyright (c) 2010-2020 OrdinaryCrazy**创建人:OrdinaryCrazy**时间:20170806**描述:百炼2756参考答案**版本:1.0*******************************原创 2017-08-06 10:53:06 · 535 阅读 · 0 评论 -
百炼-2694-逆波兰表达式-C语言-递归
一道有趣的递归问题。/**********************************************文件名:百炼-2694**Copyright (c) 2015-2025 OrdinaryCrazy**创建人: OrdinaryCrazy**日期:20170806**描述:百炼-2694参考答案**版本:1.0***************************原创 2017-08-06 11:27:53 · 1004 阅读 · 0 评论 -
OpenJudge百炼-2804-词典-C语言-二分查找
描述:你旅游到了一个国外的城市。那里的人们说的外国语言你不能理解。不过幸运的是,你有一本词典可以帮助你。输入:首先输入一个词典,词典中包含不超过100000个词条,每个词条占据一行。每一个词条包括一个英文单词和一个外语单词,两个单词之间用一个空格隔开。而且在词典中不会有某个外语单词出现超过两次。词典之后是一个空行,然后给出一个由外语单词组成的文档,文档不超过100000行,而且每行只包原创 2017-09-16 19:59:56 · 1165 阅读 · 2 评论 -
OpenJudge百炼-2820-古代密码-C语言-字符串处理
描述:古罗马帝国有一个拥有各种部门的强大政府组织。其中一个部门就是保密服务部门。为了保险起见,在省与省之间传递的重要文件中的大写字母是加密的。当时最流行的加密方法是替换和重新排列。替换方法是将所有出现的字符替换成其它的字符。有些字符会替换成它自己。例如:替换规则可以是将'A' 到 'Y'替换成它的下一个字符,将'Z'替换成 'A',如果原词是 "VICTORIOUS" 则它变成 "WJDUPS原创 2017-09-16 20:41:03 · 1252 阅读 · 4 评论 -
OpenJudge百炼-2765-八进制小数-C语言-高精度计算
描述:八进制有限小数均可以用十进制有限小数精确地表示。比如,八进制里面的0.75等于十进制里面的0.963125 (7/8 + 5/64)。所有小数点后位数为n的八进制小数都可以表示成小数点后位数不多于3n的十进制小数。你的任务是写一个程序,把(0,1)之间的八进制小数转化成十进制小数。输入:一行,包含一个八进制小数。每个小数的形式是0.d1d2d3 ... dk,这里di是八进制数0原创 2017-09-10 22:23:33 · 866 阅读 · 0 评论 -
OpenJudge百炼-2951&PKU-1001-浮点数高精度幂-C语言-高精度计算
Description:Problems involving the computation of exact values of very large magnitude and precision are common. For example, the computation of the national debt is a taxing experience for many com原创 2017-09-02 10:09:53 · 1879 阅读 · 0 评论 -
OpenJudge百炼-2775-文件结构“图”-C语言-递归
描述:在计算机上看到文件系统的结构通常很有用。Microsoft Windows上面的"explorer"程序就是这样的一个例子。但是在有图形界面之前,没有图形化的表示方法的,那时候最好的方式是把目录和文件的结构显示成一个"图"的样子,而且使用缩排的形式来表示目录的结构。比如:ROOT| dir1| file1| file2| file3原创 2017-09-02 16:36:38 · 737 阅读 · 0 评论 -
OpenJudge百炼-2739-计算对数-C语言-高精度
描述:给定两个正整数a(a>1)和b。可以知道一定存在整数x,使得x 输入:两行,第一行是a,第二行是b。每个整数均不超过100位。输出:一行,即对应的x。输入数据保证x不大于20。样例输入:100001000000000001样例输出:3/*****************************************************文原创 2017-09-02 17:22:51 · 1100 阅读 · 0 评论 -
双向链表-C/C++-多项式操作
如何用双向链表实现多项式操作:#include #include #include #include using namespace std;#define OK 1#define ERROR 0typedef int Status;typedef struct{ //项的表示 float coef; //系数 int expm; //指数}term,E原创 2017-09-23 20:12:26 · 702 阅读 · 0 评论 -
操作系统编程作业:UNIX Shell and History Feature
#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <sys/types.h>#include <sys/shm.h>#include <wait.h>#include <string.h>#include <原创 2018-04-25 22:48:08 · 4710 阅读 · 0 评论 -
Pthread 多线程矩阵乘法
/**ORDINARYCRAZY**/#include <stdio.h>#define _GNU_SOURCE#include <unistd.h>#include <pthread.h>#include <sys/syscall.h>#include <stdlib.h>#define M 3#define K 2#...原创 2018-05-07 21:52:12 · 4350 阅读 · 0 评论 -
线程同步——生产者消费者问题
/*buffer.h*/typedef int buffer_item;#define BUFFER_SIZE 5#include "buffer.h"#include <stdlib.h>#include <stdio.h>#include <time.h>#include <pthread.h>#include <semap...原创 2018-05-22 16:47:10 · 664 阅读 · 0 评论 -
OpenJudge百炼-2802-小游戏-C语言-深度优先搜索
描述:一天早上,你起床的时候想:“我编程序这么牛,为什么不能靠这个赚点小钱呢?”因此你决定编写一个小游戏。游戏在一个分割成w * h个正方格子的矩形板上进行。如图所示,每个正方格子上可以有一张游戏卡片,当然也可以没有。当下面的情况满足时,我们认为两个游戏卡片之间有一条路径相连:路径只包含水平或者竖直的直线段。路径不能穿过别的游戏卡片。但是允许路径临时的离开矩形板。下面是一个例子:原创 2017-09-01 16:38:49 · 1031 阅读 · 0 评论 -
百炼-2749-分解因数-C语言-递归算法
为了方便举一反三,从本篇博客起附题目。/**********************************************文件名:百炼-2749**Copyright (c) 2015-2025 OrdinaryCrazy**创建人:OrdinaryCrazy**日期:20170807**描述:百炼2749参考答案**版本:1.0*************原创 2017-09-10 19:34:09 · 970 阅读 · 0 评论 -
OpenJudge百炼-2819-W的密码-C语言-字符串处理
描述:加密一条信息需要三个整数码, k1, k2 和 k3。字符[a-i] 组成一组, [j-r] 是第二组, 其它所有字符 ([s-z] 和下划线)组成第三组。 在信息中属于每组的字符将被循环地向左移动ki个位置。 每组中的字符只在自己组中的字符构成的串中移动。解密的过程就是每组中的字符在自己所在的组中循环地向右移动ki个位置。 例如对于信息 the_quick_brown_fox 以k原创 2017-09-16 21:26:08 · 465 阅读 · 0 评论 -
OpenJudge百炼-1936-全在其中-C语言-字符串处理
描述:你设计了一个新的加密技术,可以用一种聪明的方式在一个字符串的字符间插入随机的字符串从而对信息进行编码。由于专利问题,我们将不会详细讨论如何在原有信息中产生和插入字符串。不过,为了验证你的方法,有必要写一个程序来验证原来的信息是否全在最后的字符串之中。给定两个字符串s和t,你需要判断s是否是t的“子列”。也就是说,如果你去掉t中的某些字符,剩下字符将连接而成为s。输入:输入包括多个原创 2017-09-16 22:19:16 · 895 阅读 · 0 评论 -
OpenJudge百炼-2798-2进制化为16进制-C语言-数制转换
描述:输入一个2进制的数,要求输出该2进制数的16进制表示。在16进制的表示中,A-F表示10-15输入:第1行是测试数据的组数n,后面跟着n行输入。每组测试数据占1行,包括一个以0和1组成的字符串,字符串长度至少是1,至多是10000输出:n行,每行输出对应一个输入。样例输入:2100000111样例输出:207/***********原创 2017-09-17 08:40:44 · 813 阅读 · 0 评论 -
OpenJudge百炼-2747-数字方格-C语言-枚举
描述:如上图,有3个方格,每个方格里面都有一个整数a1,a2,a3。已知0 输入:一行,包含一个整数n (0 输出:一个整数,即a1 + a2 + a3的最大值。样例输入:3样例输出:5/************************************************************文件名:百炼-2747**Copyrig原创 2017-09-17 09:39:02 · 2856 阅读 · 0 评论 -
OpenJudge百炼-2793-孙子问题-C语言-大衍求一术解一般同余方程组
描述:我国古代《孙子算经》中,记有如下算题:“今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二,问物几何?”并给出得数:“答曰:23。”为解决这个问题民间流传了如下歌诀:“三人同行七十稀,五树梅花廿一枝,七子团员正半月,除百零五便得知。”把上面的问题说得明白一点就是:有一个正整数N,除以3的余数是2,除以5的余数是3,除以7的余数是2,要求这个数。民间给出的解法是:把N除以3的余数乘以原创 2017-09-10 16:21:03 · 2082 阅读 · 0 评论 -
OpenJudge百炼-2809-计算2的N次方-C语言-高精度计算
描述:任意给定一个正整数N(N输入:输入一个正整数N。输出:输出2的N次方的值。样例输入:5样例输出:32/**************************************************文件名:百炼-2809**Copyright 2015-2025 (c) OrdinaryCrazy**创建人:OrdinaryCrazy*原创 2017-09-10 16:40:35 · 6528 阅读 · 0 评论 -
OpenJudge百炼-2952-循环数 & poj-1047-Round and Round We Go-C语言-高精度计算
OpenJudge百炼-2952-循环数,挺好的一道题就这么废了,判断乘二就可以了描述:若一个n位的数字串满足下述条件,则称其是循环数(cyclic):将这个数字串视为整数(可能带有前导0),并用任意一个 1 到 n 之间(包含1和n)的整数去乘它时, 会得到一个将原数字串首尾相接后,再在某处断开而得到的新数字串所对应的整数。例如,数字 142857 是循环数,因为: 142857 *原创 2017-09-10 19:01:02 · 1434 阅读 · 0 评论 -
OpenJudge百炼-2764-数根-C语言-高精度计算
描述:数根可以通过把一个数的各个位上的数字加起来得到。如果得到的数是一位数,那么这个数就是数根。如果结果是两位数或者包括更多位的数字,那么再把这些数字加起来。如此进行下去,直到得到是一位数为止。比如,对于24来说,把2和4相加得到6,由于6是一位数,因此6是24的数根。再比如39,把3和9加起来得到12,由于12不是一位数,因此还得把1和2加起来,最后得到3,这是一个一位数,因此3是39的数根原创 2017-09-10 19:21:19 · 2447 阅读 · 0 评论 -
OpenJudge百炼-2745-显示器-C语言-模拟
描述:你的一个朋友买了一台电脑。他以前只用过计算器,因为电脑的显示器上显示的数字的样子和计算器是不一样,所以当他使用电脑的时候会比较郁闷。为了帮助他,你决定写一个程序把在电脑上的数字显示得像计算器上一样。输入:输入包括若干行,每行表示一个要显示的数。每行有两个整数s和n (1 如果某行输入包括两个0,表示输入结束。这行不需要处理。输出:显示的方式是:用s个'-'表示一个水平原创 2017-08-11 18:49:17 · 1231 阅读 · 0 评论