![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C语言
南路上的西城
越努力,越幸运,这是一个老鹰吃了仙丹的故事。
展开
-
[2014年NOIP普及组] 珠心算测验
珠心算是一种通过在脑中模拟算盘变化来完成快速运算的一种计算技术。珠心算训练, 既能够开发智力,又能够为日常生活带来很多便利,因而在很多学校得到普及。 某学校的珠心算老师采用一种快速考察珠心算加法能力的测验方法。他随机生成一个正整数集合,集合中的数各不相同,然后要求学生回答:其中有多少个数,恰好等于集合中另外两个(不同的)数之和? 最近老师出了一些测验题,请你帮忙求出答案。 输入 输入共两行...原创 2018-05-04 10:06:46 · 501 阅读 · 0 评论 -
超级台阶
描述 有一楼梯共m级,刚开始时你在第一级,若每次只能跨上一级或二级,要走上第m级,共有多少走法? 注:规定从一级到一级有0种走法。输入 输入数据首先包含一个整数n(1<=n<=100),表示测试实例的个数,然后是n行数据,每行包含一个整数m,(1<=m<=40), 表示楼梯的级数。 输出 对于每个测试实例,请输出不同走法的数量。...原创 2018-08-01 16:58:40 · 130 阅读 · 0 评论 -
7-1 掉入陷阱的数字(15 分)
对任意一个自然数N0,先将其各位数字相加求和,再将其和乘以3后加上1,变成一个新自然数N1;然后对N1重复这种操作,可以产生新自然数N2;……多次重复这种操作,运算结果最终会得到一个固定不变的数Nk,就像掉入一个数字“陷阱”。本题要求对输入的自然数,给出其掉入“陷阱”的过程。 输入格式:在一行内给出一个自然数N0(N0<30000)。 输...原创 2018-09-10 15:37:42 · 7209 阅读 · 0 评论 -
7-4 找完数(20 分)
所谓完数就是该数恰好等于除自身外的因子之和。例如:6=1+2+3,其中1、2、3为6的因子。本题要求编写程序,找出任意两正整数m和n之间的所有完数。 输入格式:输入在一行中给出2个正整数m和n(1 #include <stdio.h>void print(int num){ printf("%d = ",num); int i; for(i=1;...原创 2018-09-10 15:40:21 · 5833 阅读 · 0 评论 -
6-6 '字符串01-字符串长度(10 分)
C语言标准函数库中包括 strlen 函数,用于计算字符串的长度。作为练习,我们自己编写一个功能与之相同的函数。 函数原型// 字符串长度 int StrLen(const char *str);说明:str为串的起始地址,函数值为字符串的长度(不含结束标记’\0’)。 裁判程序#include <stdio.h>// 字符串长度int StrLen(cons...原创 2018-09-10 19:58:32 · 4347 阅读 · 0 评论 -
7-4 二进制数转十进制数(20 分)
输入仅由0和1构成的整数(即“二进制”数), 输出该数对应的十进制数。 输入格式:输入仅由0和1构成的整数。 输出格式:输出相应的十进制数。 输入样例:在这里给出一组输入。例如:101100输出样例:在这里给出相应的输出。例如:44#include<stdio.h>#include<string.h>#include<math...原创 2018-09-10 21:01:40 · 6829 阅读 · 2 评论 -
6-3 '字符串02-字符串复制(赋值) (10 分)
C语言标准函数库中包括 strcpy 函数,用于字符串复制(赋值)。作为练习,我们自己编写一个功能与之相同的函数。函数原型// 字符串复制(赋值)char* StrCpy(char *dst, const char *src);说明:src 为源串的起始地址,dst 为目的串起始地址,函数将 src 串复制到 dst 串,函数值为 dst。裁判程序#include <stdio....原创 2018-09-23 21:10:43 · 5585 阅读 · 1 评论 -
6-4 带头结点的链式表操作集 (20 分)
本题要求实现带头结点的链式表操作集。函数接口定义:List MakeEmpty(); Position Find( List L, ElementType X );bool Insert( List L, ElementType X, Position P );bool Delete( List L, Position P );其中List结构定义如下:typedef struct...原创 2018-09-23 21:12:49 · 5385 阅读 · 0 评论 -
7-1 字符串替换 (15 分)
本题要求编写程序,将给定字符串中的大写英文字母按以下对应规则替换:原字母 对应字母A ZB YC XD W… …X CY BZ A输入格式:输入在一行中给出一个不超过80个字符、并以回车结束的字符串。输出格式:输出在一行中给出替换完成后的字符串。输入样例:Only the 11 CAPItaL LeTtERS are replaced.输出样例:...原创 2018-09-23 21:36:58 · 9061 阅读 · 0 评论 -
6-1 两个有序链表序列的合并 (15 分)
本题要求实现一个函数,将两个链表表示的递增整数序列合并为一个非递减的整数序列。函数接口定义:List Merge( List L1, List L2 );其中List结构定义如下:typedef struct Node PtrToNode;struct Node {ElementType Data; / 存储结点数据 /PtrToNode Next; / 指向下一个结点的指针 /...原创 2018-10-14 13:42:57 · 18058 阅读 · 8 评论 -
6-4 另类堆栈 (15 分)
在栈的顺序存储实现中,另有一种方法是将Top定义为栈顶的上一个位置。请编写程序实现这种定义下堆栈的入栈、出栈操作。如何判断堆栈为空或者满?函数接口定义:bool Push( Stack S, ElementType X );ElementType Pop( Stack S );其中Stack结构定义如下:typedef int Position;typedef struct SNode...原创 2018-10-14 14:07:57 · 4303 阅读 · 0 评论 -
6-1 求二叉树高度 (20 分)
本题要求给定二叉树的高度。函数接口定义:int GetHeight( BinTree BT );其中BinTree结构定义如下:typedef struct TNode *Position;typedef Position BinTree;struct TNode{ ElementType Data; BinTree Left; BinTree Right;...原创 2018-10-08 22:28:18 · 9189 阅读 · 0 评论 -
7-5 找最长的字符串 (15 分)
本题要求编写程序,针对输入的N个字符串,输出其中最长的字符串。输入格式:输入第一行给出正整数N;随后N行,每行给出一个长度小于80的非空字符串,其中不会出现换行符,空格,制表符。输出格式:在一行中用以下格式输出最长的字符串:The longest is: 最长的字符串如果字符串的长度相同,则输出先输入的字符串。输入样例:5liwangzhangjinxiang输出样例:...原创 2018-10-09 22:41:15 · 15519 阅读 · 2 评论 -
7-6 字符串逆序 (15 分)
输入一个字符串,对该字符串进行逆序,输出逆序后的字符串。输入格式:输入在一行中给出一个不超过80个字符长度的、以回车结束的非空字符串。输出格式:在一行中输出逆序后的字符串。输入样例:Hello World!输出样例:!dlroW olleH#include<stdio.h>#include<string.h>int main(){ char s[1...原创 2018-10-09 22:48:29 · 6026 阅读 · 0 评论 -
6-2 双端队列 (25 分)
双端队列(deque,即double-ended queue的缩写)是一种具有队列和栈性质的数据结构,即可以(也只能)在线性表的两端进行插入和删除。若以顺序存储方式实现双端队列,请编写例程实现下列操作:Push(X,D):将元素X插入到双端队列D的头;Pop(D):删除双端队列D的头元素,并返回;Inject(X,D):将元素X插入到双端队列D的尾部;Eject(D):删除双端队列D的尾部...原创 2018-10-09 23:03:48 · 9049 阅读 · 1 评论 -
7-2 查验身份证 (15 分)
一个合法的身份证号码由17位地区、日期编号和顺序编号加1位校验码组成。校验码的计算规则如下:首先对前17位数字加权求和,权重分配为:{7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2};然后将计算的和对11取模得到值Z;最后按照以下关系对应Z值与校验码M的值:Z:0 1 2 3 4 5 6 7 8 9 10M:1 0 X 9 8 7 6 5 4 3 2现在给定一些身份...原创 2018-10-10 19:10:31 · 4344 阅读 · 0 评论 -
7-3 单词长度 (15 分)
你的程序要读入一行文本,其中以空格分隔为若干个单词,以.结束。你要输出每个单词的长度。这里的单词与语言无关,可以包括各种符号,比如it’s算一个单词,长度为4。注意,行中可能出现连续的空格;最后的.不计算在内。输入格式:输入在一行中给出一行文本,以.结束提示:用scanf("%c",…);来读入一个字符,直到读到.为止。输出格式:在一行中输出这行文本对应的单词的长度,每个长度之间以空格隔...原创 2018-10-10 19:11:46 · 3178 阅读 · 1 评论 -
6-2 折半查找的实现 (10 分)
给一个严格递增数列,函数Search_Bin(SSTable ST, KeyType key)用来二分地查找key在数列中的位置。函数接口定义:Search_Bin(SSTable ST, KeyType key)其中ST是有序表,key是查找的值裁判测试程序样例:#include <stdio.h>#include <stdlib.h>#define NO...原创 2018-11-18 13:42:40 · 2482 阅读 · 0 评论 -
阶乘因式分解(二)
描述 给定两个数n,m,其中m是一个素数。 将n(0<=n<=2^31)的阶乘分解质因数,求其中有多少个m。 注:^为求幂符号。输入 第一行是一个整数s(0小于s小于等于100),表示测试数据的组数 随后的s行, 每行有两个整数n,m。 输出 输出m的个数 样例输入3100 516 21000000000 ...原创 2018-08-01 13:20:24 · 304 阅读 · 0 评论 -
三点顺序
描述现在给你不共线的三个点A,B,C的坐标,它们一定能组成一个三角形,现在让你判断A,B,C是顺时针给出的还是逆时针给出的?如:图1:顺时针给出图2:逆时针给出 &lt;图1&gt; &lt;图2&gt;输入 每行是一组测试数据,有6个整数x1,y1,x2,y2,x3,y3分别表示A,B,C三个点的横纵坐标...原创 2018-08-01 12:59:30 · 156 阅读 · 0 评论 -
懒省事的小明
描述 小明很想吃果子,正好果园果子熟了。在果园里,小明已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆。小明决定把所有的果子合成一堆。 因为小明比较懒,为了省力气,小明开始想点子了: 每一次合并,小明可以把两堆果子合并到一起,消耗的体力等于两堆果子的重量之和。可以看出,所有的果子经过n-1次合并之后,就只剩下一堆了。小明在合并果子时总共消耗的体力等于...原创 2018-08-01 12:24:58 · 159 阅读 · 0 评论 -
Java [2015年NOIP普及组] 扫雷游戏
扫雷游戏是一款十分经典的单机小游戏。在n行m列的雷区中有一些格子含有地雷(称之为地雷格),其他格子不含地雷(称之为非地雷格)。玩家翻开一个非地雷格时,该格将会出现一个数字——提示周围格子中有多少个是地雷格。游戏的目标是在不翻出任何地雷格的条件下,找出所有的非地雷格。 现在给出n行m列的雷区中的地雷分布,要求计算出每个非地雷格周围的地雷格数。 注:一个格子的周围格子包括其上、下、左、右、左上、右...原创 2018-05-12 20:39:46 · 394 阅读 · 0 评论 -
C语言 数组逆序重放
将一个数组中的值按逆序重新存放。例如,原来的顺序为8,6,5,4,1。要求改为1,4,5,6,8。 输入 输入为两行:第一行数组中元素的个数n(1 输出 输出为一行:输出逆序后数组的整数,每两个整数之间用空格分隔。 样例输入 5 8 6 5 4 1样例输出 1 4 5 6 8#include<stdio.h>int main(){ int n;...原创 2018-05-13 16:32:07 · 11188 阅读 · 1 评论 -
[2003年NOIP普及组] 栈
【问题背景】栈是计算机中经典的数据结构,简单的说,栈就是限制在一端进行插入删除操作的线性表。 栈有两种最重要的操作,即pop(从栈顶弹出一个元素)和push(将一个元素进栈)。 栈的重要性不言自明,任何一门数据结构的课程都会介绍栈。宁宁同学在复习栈的基本概念时,想到了一个书上没有讲过的问题,而他自己无法给出答案,所以需要你的帮忙。【问题描述】 宁宁考虑的是这样一个问题:一个操作数序列...原创 2018-05-15 21:15:53 · 1650 阅读 · 4 评论 -
喷水装置(一)
描述 现有一块草坪,长为20米,宽为2米,要在横中心线上放置半径为Ri的喷水装置,每个喷水装置的效果都会让以它为中心的半径为实数Ri(0小于Ri小于15)的圆被湿润,这有充足的喷水装置i(1小于i小于600)个,并且一定能把草坪全部湿润,你要做的是:选择尽量少的喷水装置,把整个草坪的全部湿润。输入 第一行m表示有m组测试数据 每一组测试数据的第一行有一个整数数n,...原创 2018-07-25 14:38:46 · 193 阅读 · 0 评论 -
另一种阶乘问题
描述大家都知道阶乘这个概念,举个简单的例子:5!=1*2*3*4*5.现在我们引入一种新的阶乘概念,将原来的每个数相乘变为i不大于n的所有奇数相乘例如:5!!=1*3*5.现在明白现在这种阶乘的意思了吧!现在你的任务是求出1!!+2!!......+n!!的正确值(n<=20)输入 第一行输入一个a(a<=20),代表共有a组测试数据 接下来a行各行输...原创 2018-07-25 14:49:34 · 313 阅读 · 1 评论 -
最长公共子序列
描述 咱们就不拐弯抹角了,如题,需要你做的就是写一个程序,得出最长公共子序列。 tip:最长公共子序列也称作最长公共子串(不要求连续),英文缩写为LCS(Longest Common Subsequence)。其定义是,一个序列 S ,如果分别是两个或多个已知序列的子序列,且是所有符合此条件序列中最长的,则 S 称为已知序列的最长公共子序列。输入 第一行给出一个整...原创 2018-07-29 12:36:50 · 146 阅读 · 0 评论 -
一种排序
描述 现在有很多长方形,每一个长方形都有一个编号,这个编号可以重复;还知道这个长方形的宽和长,编号、长、宽都是整数;现在要求按照一下方式排序(默认排序规则都是从小到大);1.按照编号从小到大排序2.对于编号相等的长方形,按照长方形的长排序;3.如果编号和长都相同,按照长方形的宽排序;4.如果编号、长、宽都相同,就只保留一个长方形用于排序,删除多余的长方形;最后排好序按照指...原创 2018-07-26 13:52:22 · 357 阅读 · 0 评论 -
会场安排问题
描述 学校的小礼堂每天都会有许多活动,有时间这些活动的计划时间会发生冲突,需要选择出一些活动进行举办。小刘的工作就是安排学校小礼堂的活动,每个时间最多安排一个活动。现在小刘有一些活动计划的时间表,他想尽可能的安排更多的活动,请问他该如何安排。输入 第一行是一个整型数m(m<100)表示共有m组测试数据。 每组测试数据的第一行是一个整数n(1小于n小于1000...原创 2018-07-26 14:46:12 · 226 阅读 · 0 评论 -
P1945 放苹果
把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法。 输入 第一行是测试数据的数目t(0 <= t <= 20)。以下每行均包含二个整数M和N,以空格分开。1<=M,N<=10。 输出 对输入的每组数据M和N,用一行输出相应的K。 样例输入1 7 3样例输出8#in...原创 2018-07-30 13:33:56 · 172 阅读 · 0 评论 -
最少乘法次数
描述 给你一个非零整数,让你求这个数的n次方,每次相乘的结果可以在后面使用,求至少需要多少次乘。如24:2*2=22(第一次乘),22*22=24(第二次乘),所以最少共2次;输入 第一行m表示有m(1<=m<=100)组测试数据;输出 输出每组测试数据所需次数s;样例输入3234样例输出122#include&l...原创 2018-07-30 14:20:37 · 514 阅读 · 0 评论 -
吝啬的国度
描述 在一个吝啬的国度里有N个城市,这N个城市间只有N-1条路把这个N个城市连接起来。现在,Tom在第S号城市,他有张该国地图,他想知道如果自己要去参观第T号城市,必须经过的前一个城市是几号城市(假设你不走重复的路)。输入 第一行输入一个整数M表示测试数据共有M(1<=M<=5)组 每组测试数据的第一行输入一个正整数N(1<=N<=1000...原创 2018-07-27 14:01:11 · 113 阅读 · 0 评论 -
孪生素数问题
描述 写一个程序,找出给出素数范围内的所有孪生素数的组数。一般来说,孪生素数就是指两个素数距离为2,近的不能再近的相邻素数。有些童鞋一看到题就开始写程序,不仔细看题,咱们为了遏制一下读题不认真仔细的童鞋,规定,两个素数相邻为1的也成为孪生素数。输入 第一行给出N(0小于N小于100)表示测试数据组数。 接下来组测试数据给出m,表示找出m之前的所有孪生素数。 ...原创 2018-07-27 14:26:05 · 267 阅读 · 0 评论 -
无聊的小明
描述 这天小明十分无聊,没有事做,但不甘于无聊的小明聪明的想到一个解决无聊的办法,因为他突然对数的正整数次幂产生了兴趣。 众所周知,2的正整数次幂最后一位数总是不断的在重复2,4,8,6,2,4,8,6……我们说2的正整数次幂最后一位的循环长度是4(实际上4的倍数都可以说是循环长度,但我们只考虑最小的循环长度)。类似的,其余的数字的正整数次幂最后一位数也有类似的...原创 2018-07-30 19:32:15 · 279 阅读 · 0 评论 -
大数阶乘
描述 我们都知道如何计算一个数的阶乘,可是,如果这个数很大呢,我们该如何去计算它并输出它?输入 输入一个整数m(0小于m小于等于5000) 输出 输出m的阶乘,并在输出结束之后输入一个换行符 样例输入50样例输出30414093201713378043612608166064768844377641568960512000000000000...原创 2018-07-27 16:28:26 · 177 阅读 · 0 评论 -
组合数
描述 找出从自然数1、2、… 、n(0小于n小于10)中任取r(0小于r小于等于n)个数的所有组合。输入 输入n、r。 输出 按特定顺序输出所有组合。 特定顺序:每一个组合中的值从大到小排列,组合之间按逆字典序排列。 样例输入5 3样例输出543542541532531521432431421321#incl...原创 2018-07-28 12:48:12 · 1248 阅读 · 0 评论 -
蛇形填数
描述 在n*n方陈里填入1,2,…,n*n,要求填成蛇形。例如n=4时方陈为: 10 11 12 1 9 16 13 2 8 15 14 3 7 6 5 4输入 直接输入方陈的维数,即n的值。(n<=100) 输出 输出结果是蛇形方陈。 样例输入3样例输出7 8 16 9 25 4 3#...原创 2018-07-28 13:17:28 · 144 阅读 · 0 评论 -
6-1 求链式表的表长 (10 分)
本题要求实现一个函数,求链式表的表长。函数接口定义:int Length( List L );其中List结构定义如下:typedef struct LNode *PtrToLNode;struct LNode { ElementType Data; PtrToLNode Next;};typedef PtrToLNode List;L是给定单链表,函数Leng...原创 2018-11-18 13:44:20 · 12722 阅读 · 3 评论