C
雪岩ding
判题机你不讲武德~
展开
-
筛选素数
Problem U: 筛选素数Description在数学上,素数的分布没有任何已知规律,因此检测一个数是否素数,只能用比它小的素数来检测整除性质。如果要求出一定范围内的素数表直接检测的代价就太高了。一般采用筛选法的思想:把从1开始的、某一范围内的正整数从小到大顺序排列,1不是素数,首先把它筛掉。剩下的数中选择最小的数是素数,然后去掉它的倍数。依次类推,直到筛子为空时结束。如有:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23原创 2021-01-01 14:44:55 · 321 阅读 · 0 评论 -
埃氏筛选与欧氏筛选
埃氏筛选与欧式筛选以及其它素数的快速判定1.埃氏筛选;时间复杂度:O(nloglogn);思想:让找到1到n的所有素数,先假定1到n都是素数,然后1)0不是素数,1不是素数,标记0,1为非素数;2)从2开始,只要是素数,就将该素数的倍数都标记为非素数;代码实现:#include<stdio.h>#include<stdlib.h>int prime[100000];int sieve(int n){ for(int i=0;i<=n;i++){原创 2021-01-01 14:21:59 · 535 阅读 · 0 评论 -
Problem A: 编写函数:第几个英文字母 (Append Code)
Problem A: 编写函数:第几个英文字母 (Append Code)Description输入一个英文字母,大小写均可,是第几个英文字母? 编写两个函数chseq()、output(),完成程序,其原型为: int chseq(char ch); 功能:形参ch传入一个英文字母,大小写均可。用int类型返回其顺序。 Output(char ch, int n); 功能:原创 2020-12-25 15:38:42 · 561 阅读 · 0 评论 -
Problem B: 编写函数:有多少个数字 (Append Code)
Problem B: 编写函数:有多少个数字 (Append Code)Description从标准输入读取了多少个数字? 用C语言或C++编写函数实现,append.c中调用的函数为: int get_nums(); //请自行设计函数参数,使程序编译正确。 功能:从标准输入读取若干整数,返回读取的整数个数。 函数的调用格式见“Append Code”。Input输入若干数字,至EOF结束。Output输出数字的原创 2020-12-25 15:31:58 · 369 阅读 · 0 评论 -
Problem C: 编写函数:字符串的长度 (Append Code)
Problem C: 编写函数:字符串的长度 (Append Code)Time Limit: 1 Sec Memory Limit: 2 MBSubmit: 8948 Solved: 4632[Submit][Status]Description输入一些字符串,输出它们的长度。编写函数str_len():原型:int str_len(char s[]);功能:返回字符串s的长度,不包括串终结符’\0’。函数的调用格式见“Append Code”。Invalid Word(禁用单原创 2020-12-25 15:28:23 · 849 阅读 · 0 评论 -
Problem D: 编写函数:几点几分几秒 (Append Code)
Problem D: 编写函数:几点几分几秒 (Append Code)Description一天24小时,每小时60分钟,每分钟60秒。一天共有86400秒。你的任务是编写一个程序,输入一个在0~86399之间的整数n,输出n对应的时间(从00:00:00到23:59:59)。 编写两个函数to_time()和put_time()完成程序: 原型:struct time to_time(int n); 功能:把参数n换算为用结构体原创 2020-12-25 15:24:11 · 494 阅读 · 0 评论 -
Problem E: 编写函数:递归的字符串回文 (Append Code)
Problem E: 编写函数:递归的字符串回文 (Append Code)Description输入一个字符串s,判断是否为回文。回文是指顺序和逆序完全一样的串。 编写函数palindrome()完成程序: 原型:int palindrome (char s[], int begin, int end); 功能:用递归的方法判断串s在下标begin到end之间的部分是否为回文,是返回1,否则返回0。 函数的调用格式见“Ap原创 2020-12-25 15:16:08 · 496 阅读 · 1 评论 -
Problem F: 编写函数:数组的下标
编写函数:数组的下标Description给出一个不超过N个元素的数组,用下标做查询操作。数组的下标一般为0~N-1之间,在这里数组的下标扩展到负数(即-1~-N),如-1表示倒数第1个元素,-k表示倒数第k个元素。 编写两个函数get_array()和array_value()完成程序: 原型:int get_array(int a[]); 功能:按样例格式读取n个整数储存的数组a[]中,并返回a[]的元素个数。原创 2020-12-25 15:11:29 · 398 阅读 · 0 评论 -
Problem G: 求平方根
2017年山科C语言期末考试Problem G: 求平方根Description输入一个正实数,输出它的平方根Input输入一个正实数m。Output输出m的平方根,保留7位小数。Sample Input4Sample Output2.0000000ans:#include<stdio.h>#include<math.h>#include<stdlib.h>int main(){ double m; scanf("%原创 2020-12-25 15:01:29 · 207 阅读 · 0 评论 -
Problem H: 有多少人?
2017年C语言期末考试Problem H: 有多少人?Description学校举行运动会,如果全体学生按照3人一队列队,则多了1个人;如果按照4人一队列队,则多了2个人;如果按照5人一队排队,则多了3个人。请问这个学校有多少学生?Input一个int类型的正整数N,是学生人数的上界,即:该校学生数不超过N。Output所有可能的学生数,每个数占一行。Sample Input200Sample Output58118178ans:#include<stdio.h&g原创 2020-12-25 14:58:06 · 298 阅读 · 0 评论 -
Problem K: 十六进制转二进制
Problem K: 十六进制转二进制Description二进制是计算机中数据的一种表示方法,只有两个符号0和1,分别代表十进制数值0和1。十六进制是计算机中数据的一种表示方法,与十进制的对应关系是:十六进制的0~9对应十进制数值0-9,A~F对应十进制数值10-15。现在你编写一个程序,完成一个十六进制数到二进制表示的转换。Input输入有多行,至EOF结束。每行一个十六进制整数n,n不超过100位十六进制数值。n只包括数字0~9和大写字母A~F。Output输出有多行,每一行输出与输入原创 2020-12-25 14:52:09 · 538 阅读 · 0 评论 -
Problem L: 最简分式
Problem L: 最简分式Description我们知道,5/3=1+3/5,称等号后面的式子为最简分式。也就是说,在分式中,分子一定要小于分母,而且分子、分母是互质的。请写一个程序,对于用户输入的一个合法分式,输出其约简之后的结果。Input输入有多行,每行是“m/n”的格式表示的一个分式,其中m和n都是int类型范围内的正整数。输入至EOF结束。Output输出的行数与输入一致,且每行输出与上述输入一一对应。如果约简后,分子部分是0,则只输出整数部分。如果整数部分是0,则按照“j/原创 2020-12-25 14:48:34 · 537 阅读 · 0 评论 -
Problem J: 矩阵的行列交换
Problem J: 矩阵的行列交换Description给出一个m行n列的矩阵,编程完成行列交换的操作。Input首先输入两个数m和n,满足0<m,n<=100,后接一个m行n列的整数矩阵。矩阵输入完毕后,每行为一个操作命令:“line I j”表示矩阵的第i、j两行交换(满足0<=i,j<=m);“row i j”表示矩阵的第i、j两列交换(满足0<=i,j<=n),至EOF结束。Output输出与输入对应,每行操作命令输出一个矩阵,为操作之后的矩阵。原创 2020-12-25 14:44:47 · 738 阅读 · 0 评论 -
打印图形题目解决策略整理!
C语言解决打印图形题目解决策略整理!策略1:使用坐标法将题目转化在xoy坐标系上,观察输出得内容与坐标之间的关系!例题1:Problem I: 打印字母菱形图案Description 从键盘输入一个整数n(1≤n≤10),打印出指定的数字图形。Input 正整数n(1≤n≤10)。Output 指定的数字图形,参看样例。注意最右侧数字后面有空格,直到与最长的一行对齐。Sample Input6Sample Output 1 515 54145原创 2020-12-24 11:23:18 · 716 阅读 · 1 评论 -
Problem I: 打印字母菱形图案
计算机学院c语言2017年期末考试Problem I: 打印字母菱形图案Description从键盘输入一个整数n(1≤n≤10),打印出指定的数字图形。Input正整数n(1≤n≤10)。Output指定的数字图形,参看样例。注意最右侧数字后面有空格,直到与最长的一行对齐。Sample Input6Sample Output 1 515 54145 5431345 543212345 11111111111 5432123原创 2020-12-24 10:49:43 · 829 阅读 · 0 评论 -
Problem M: 梅森素数
计算机学院2017年c语言压轴题目Problem M: 梅森素数Description梅森素数是由梅森数而来。所谓梅森数,是指形如2p-1的一类数,其中指数p是素数,常记为Mp 。如果梅森数是素数,就称为梅森素数(如3、7、31、127等等)。它是以17世纪法国数学家马林·梅森的名字命名。Input输入为多行,每行一个正整数p(1<p<64),至EOF结束。除了2之外,p其它的可能输入都是奇数。Output输出为多行,每行一个Mp。如果Mp是梅森素数,就输出它的值,否则就输出“no原创 2020-12-24 10:29:34 · 862 阅读 · 0 评论 -
Problem J: A+B Problem (VIII) : Recursion Practice (Append Code)
2018年C语言考试试题Problem J: A+B Problem (VIII) : Recursion Practice (Append Code)Description计算a+b,0<=a,b<1000。编写一个函数add()。函数原型为 int add(int n); 功能:函数读入a和b的值,并输出a+b。用递归的方法编写,n是递归的次数。函数put_sum()的调用格式见“Append Code”。Invalid Word(禁用单词)错误:在解决这个题目时原创 2020-12-22 15:29:46 · 269 阅读 · 0 评论 -
Problem I: 编写函数:字符串的小写转大写(Append Code)
2018年C语言考试试题Problem I: 编写函数:字符串的小写转大写(Append Code)Description输入一些字符串,把其中的小写字母转换成大写字母。编写函数str_upr(): 原型:char* str_upr(char *s); 功能:把字符串s中的小写字母变成大写,其余字符不变。函数的调用格式见“Append Code”。Invalid Word(禁用单词)错误:在解决这个题目时,某些关键词是不允许被使用的。如果提交的程序中包含了下列的关键词之一,就会产生这原创 2020-12-22 15:23:47 · 638 阅读 · 1 评论 -
Problem H: 编写函数:数组的操作 之二(Append Code)
2018年C语言考试试题Problem H: 编写函数:数组的操作 之二(Append Code)Description给出两个不超过N个元素的数组,交换这两个数组的元素。结合“Append Code”中的代码,编写以下函数: 原型:int swap_array(int a[], int m, int b[], int n); 功能:把a[]的元素和b[]的元素按下标对应交换,其中m、n是数组a[]、b[]的长度。对于这个函数来说,默认m和n都不超过arr[]、a[]、b[]的实际存储空原创 2020-12-22 15:17:48 · 442 阅读 · 0 评论 -
Problem K: 二进制位数
2018年C语言考试试题Problem K: 二进制位数Description求一个十进制整数的二进制位数。Input输入一个整数n,0<=n<231。Output输出n的二进制位数Sample Input7Sample Output3ans:#include<stdio.h>int main(){ int n; scanf("%d",&n); if(n==0){//0直接打印1 printf("1原创 2020-12-22 15:11:15 · 258 阅读 · 0 评论 -
Problem M: 车牌限行
2018年C语言考试试题Problem M: 车牌限行Description某市因交通拥堵,自即日起实行车牌限行。规定,车牌尾号为“1”和“6”的星期一限行,尾号为“2”和“7”的星期二限行,尾号为“3”和“8”的星期三限行,尾号为“4”和“9”的星期四限行,尾号为“5”和“0”的星期五限行;周六周日不限行。车牌有5位,每位可以是数字“0”~“9”或字母“A”~“Z”中的任一符号,尾号定义为车牌中最后一个数字,若车牌中没有数字,则尾号为“0”;Input输入为多行,至EOF结束。每行为一个车牌。原创 2020-12-22 15:07:12 · 2116 阅读 · 1 评论 -
Problem L: 短信计费
2018年C语言考试题目Problem L: 短信计费Description现有手机短信服务商提供如下服务:每条短信长度限定在1~30个字符之内,客户每次发送的信息最多不超过500个字符,信息中每30个字符计算为1条短信,每月月租1元包15条短信,超过15条每条短信收费0.1元,(字符数为0的)空信息不计费。现给出客户一个月发送的全部短信,编程计算出客户花费(含月租费)。Input输入为多行,至EOF结束。每行为一条信息(可能是多条短信),除了换行符“\n”之外,其他字符都是信息的内容。Out原创 2020-12-22 14:58:53 · 1452 阅读 · 0 评论 -
2018级计算机学院《程序设计基础(1)》(压轴题目哦)
2018级计算机学院《程序设计基础(1)》(压轴题目哦)Problem O: 第几个素数Description已知2是第一个素数,3是第二个、5是第三个……现在编程序求第k个素数是什么?所求素数均小于10000000。根据素数定理,不超过x的素数的个数近似于x/ln(x),根据标程测得的数据,不超过10000000的素数不到66万5千个。建议:分配动态内存。Input输入多个整数k,至EOF结束。输入不超过50个整数。本题共5组测试样例,k的范围和个数满足:第一组:k<=100,不原创 2020-12-22 14:43:53 · 422 阅读 · 0 评论 -
Problem H: Sequence Problem (IV) : Function Practice (Append Code)
作业8Problem H: Sequence Problem (IV) : Function Practice (Append Code)Description整数序列是一串按特定顺序排列的整数,整数序列的长度是序列中整数的个数,不可定义长度为负数的整数序列。两整数序列A、B的和定义为一个新的整数序列C,序列C的长度是A、B两者中较长的一个,序列C的每个位置上的整数都是A、B对应位置之和。若序列A、B不等长,不妨假设A比B整数多,那么序列C中多出B的那部分整数视作A的对应位置上的整数与0相加。你的原创 2020-12-21 17:11:29 · 224 阅读 · 0 评论 -
Problem G: 编写函数:矩阵乘法 (Append Code)
作业8Problem G: 编写函数:矩阵乘法 (Append Code)Description给出一个m行n列的矩阵A和一个n行q列的矩阵B,求它们的乘积。Input输入分为三部分,首先输入三个正整数m,n,q,其次是一个m行n列的矩阵A,最后是一个n行q列的矩阵B,矩阵的元素均为整数。m、n、q均不超过100。Output输出一个m行q列的矩阵。矩阵的每行元素输出为一行,矩阵每列元素间一个用空格分开。Sample Input2 2 31 12 00 2 31 1 2Samp原创 2020-12-21 15:40:23 · 440 阅读 · 0 评论 -
Problem F: Matrix Problem (III) : Array Practice
作业8Problem F: Matrix Problem (III) : Array PracticeDescription求两个矩阵A、B的乘积C=AB。根据矩阵乘法的定义,只有A的列数和B的行数相同才能相乘。可以确保所有运算结果都在int类型的范围之内。Input输入数据为多个矩阵(最少2个),每个矩阵以两个正整数m和n开始,满足0<m,n<=100,接下来为一个m行n列的矩阵A。当输入的m和n均为0时,表示输入数据结束。Output对输入的矩阵两两相乘:第1个和第2个相乘、第原创 2020-12-21 15:27:55 · 332 阅读 · 0 评论 -
Problem E: Matrix Problem (II) : Array Practice
作业8Problem E: Matrix Problem (II) : Array PracticeDescription求两个矩阵A、B的和。根据矩阵加法的定义,只有同阶的矩阵才能相加。可以确保所有运算结果都在int类型的范围之内。Input输入数据为多个矩阵,每个矩阵以两个正整数m和n开始,满足0<m,n<=100,接下来为一个m行n列的矩阵A。当输入的m和n均为0时,表示输入数据结束Output对输入的矩阵两两相加:第1个和第2个相加、第3个和第4个相加……按顺序输出矩阵相加原创 2020-12-21 14:51:47 · 373 阅读 · 0 评论 -
Problem D: Matrix Problem : Array Practice
作业8Problem D: Matrix Problem : Array PracticeDescription求一个m×n阶矩阵A的转置矩阵AT。矩阵A的每个元素都在int类型的范围之内。Input输入的第一行为一个整数M(M>0),后面有M组输入数据。每组数据以两个正整数m和n开始,满足0<m,n<=100,接下来为一个m行n列的矩阵A。Output输出为多组,每组输出A的转置矩阵AT。矩阵的输出为:每行两个元素之间用一个空格分开,每行最后一个元素之后为一个换行,在下一行原创 2020-12-21 14:28:07 · 408 阅读 · 0 评论 -
Problem C: Sequence Problem (III) : Array Practice
作业8Problem C: Sequence Problem (III) : Array PracticeDescription整数序列是一串按特定顺序排列的整数,整数序列的长度是序列中整数的个数,不可定义长度为负数的整数序列。两整数序列A、B的和定义为一个新的整数序列C,序列C的长度是A、B两者中较长的一个,序列C的每个位置上的整数都是A、B对应位置之和。若序列A、B不等长,不妨假设A比B整数多,那么序列C中多出B的那部分整数视作A的对应位置上的整数与0相加。你的任务是计算符合某些要求的整数序列原创 2020-12-21 14:19:47 · 282 阅读 · 0 评论 -
Problem B: Sequence Problem (II) : Array Practice
作业8Problem B: Sequence Problem (II) : Array PracticeDescription整数序列是一串按特定顺序排列的整数,整数序列的长度是序列中整数的个数,不可定义长度为负数的整数序列。两整数序列A、B的和定义为一个新的整数序列C,序列C的长度是A、B两者中较长的一个,序列C的每个位置上的整数都是A、B对应位置之和。若序列A、B不等长,不妨假设A比B整数多,那么序列C中多出B的那部分整数视作A的对应位置上的整数与0相加。你的任务是计算符合某些要求的整数序列的原创 2020-12-21 13:55:20 · 434 阅读 · 0 评论 -
Problem A: Sequence Problem : Array Practice
作业8Problem A: Sequence Problem : Array PracticeDescription整数序列是一串按特定顺序排列的整数,整数序列的长度是序列中整数的个数,不可定义长度为负数的整数序列。两整数序列A、B的和定义为一个新的整数序列C,序列C的长度是A、B两者中较长的一个,序列C的每个位置上的整数都是A、B对应位置之和。若序列A、B不等长,不妨假设A比B整数多,那么序列C中多出B的那部分整数视作A的对应位置上的整数与0相加。你的任务是计算符合某些要求的整数序列的和,这些序原创 2020-12-21 13:28:19 · 512 阅读 · 1 评论 -
Problem J: 成绩统计
作业9Problem J: 成绩统计Description把百分制的考试成绩转换为五个等级:90~100:Excellent80~89:Good70~79:Average60~69:Pass0~59:Failing统计每个等级的成绩,并输出。Input输入多行,每行一个整数。输入的成绩总数不超过1000个。到EOF结束。Output按从好到差的顺序分等级输出成绩,第一行为“等级 : 成绩数”,成绩数为这一等级的成绩总数;第二行为具体的成绩,用逗号分隔开,每个逗号后面有空格,每行最后原创 2020-12-20 16:44:44 · 332 阅读 · 0 评论 -
Problem I: 编写函数:Swap (I) (Append Code)
Problem I: 编写函数:Swap (I) (Append Code)Description编写用来交换两个数的函数,使得“Append Code”中的main()函数能正确运行。用C实现三个函数int_swap()、dbl_swap()、SWAP(),其中SWAP()是个带参宏。用C++实现两个函数,都以Swap()命名。以上函数的调用格式见“Append Code”。这里不给出函数原型,它们的参数请通过main()函数自行确定。Input输入为4行,每行2个数。Output输出原创 2020-12-20 16:12:11 · 481 阅读 · 0 评论 -
Problem G: 平均数在哪儿?
Problem G: 平均数在哪儿?Description给你一个正整数序列a1, a2, …, an.,找出所有的i, 满足第i个数是其他所有数的平均数。Input第一行是一个正整数T,表示测试用例个数。每个测试用例的第一行是一个正整数n(2 ≤ n ≤ 2·105)。第二行是n个正整数a1, a2, …, an (1 ≤ ai ≤ 1000)。Output对于每组测试用例,第一行输出满足条件的数的个数,第二行输出所有满足条件的数的编号(两编号之间用一个空格隔开),编号为从1到n的正整数。如原创 2020-12-20 15:49:04 · 435 阅读 · 1 评论 -
Problem F: 小学生算术
Problem F: 小学生算术Description给出两个正整数,计算两个数相加需要多少次进位。Input数据有多组,每组包含两个整数,都在int范围内,输入以EOF结尾Output一个整数,表示两个数相加需要的进位次数Sample Input123 321555 555123456789 987654321Sample Output039HINT一定要用整数求余相加判断吗?想想有没有简洁的思路。试试用字符串吧,转换思路,分步处理。错误代码://刚开原创 2020-12-20 15:11:58 · 383 阅读 · 0 评论 -
Problem E: 编写函数:String to Integer (II) (Append Code)
Problem E: 编写函数:String to Integer (II) (Append Code)Description让我们来编写一个程序,按照指定的转换规则,把一个字符串里的整数提取出来。编写函数strToInt():原型:int strToInt(char str[]);功能:按照指定的转换规则,把str[]中的串转换成整数,并返回。函数的调用格式见“Append Code”。Invalid Word(禁用单词)错误:在解决这个题目时,某些关键词是不允许被使用的。如果提交的程序原创 2020-12-20 14:22:45 · 275 阅读 · 0 评论 -
Problem D: 编写函数:String to Integer (I) (Append Code)
Problem D: 编写函数:String to Integer (I) (Append Code)Description让我们来编写一个程序,按照指定的转换规则,把一个字符串里的整数提取出来。编写函数strToInt():原型:int strToInt(char str[]);功能:按照指定的转换规则,把str[]中的串转换成整数,并返回,若str[]为空串,返回-1。函数的调用格式见“Append Code”。Invalid Word(禁用单词)错误:在解决这个题目时,某些关键词是不原创 2020-12-20 14:13:21 · 386 阅读 · 0 评论 -
Problem B: 编写函数:有序序列插入数据 之一 (Append Code)
作业9Problem B: 编写函数:有序序列插入数据 之一 (Append Code)Description已有一个按递增序排列的正整数序列Array,其中任意两个元素都不同。现要将一正整数Key插入到序列Array中,并且依然保持Array的递增序。在此过程中,按判定顺序有可能出现以下几种情况:序列Array已经达到其容量上界;序列Array中已经有与Key相等的元素存在;序列Array既没有满,也没有与Key相等的元素,则Key可以插入序列Array之中,应获得其Key插入序列原创 2020-12-20 14:06:40 · 666 阅读 · 1 评论 -
Problem D: 多个数的平均值之一
实验2Problem D: 多个数的平均值之一Description求k个数的平均值。Input输入分为两部分:第一个数是k,然后输入k个较小的整数。Output输出为这k个整数的平均值,保留3位小数。Sample Input31 2 3Sample Output2.000答案:#include<stdio.h>int main(){ int n; scanf("%d",&n); int sum=0; int num;原创 2020-12-19 22:31:41 · 420 阅读 · 0 评论 -
Problem A: 编写函数:清除字符串首尾的空白符 (Append Code)
作业10Problem A: 编写函数:清除字符串首尾的空白符 (Append Code)Description在C语言中,将ASCII字符集中的制表符(’\t’)、回车符(’\r’)、换行符(’\n’)、垂直制表符(’\v’)、换页符(’\f’)和空格字符(’ ')称作空白符。你的任务是读入每行字符串,去掉行首和行尾的连续空白符,但是在任意非空白符中间的空白符不要去除。编写一个函数trim(),把一个串首尾的空白符清除掉:原型:char * trim(char *s);功能:去掉字符串s首尾原创 2020-12-19 22:30:45 · 555 阅读 · 0 评论