- 博客(86)
- 收藏
- 关注

原创 问题 C: 约瑟夫问题(数学解法)
题目描述有 n 只猴子,按顺时针方向围成 1 圈选大王(编号从 11到 n),从第 1号开始报数,一直数到 m,数到 m的猴子退出圈外,剩下的猴子再接着从 1开始报数。就这样,直到圈内只剩下一只猴子时,这个猴子就是猴王。编程输人 n 和 m,输出最后猴王的编号。输入每行是用空格分开的两个整数,第一个是 n,第二个是 m(0<m,n≤300)。最后一行是 0 0。输出对于每行输入数据(最后一行除外), 输出数据也是一行,即最后猴王的编号。输入输出输入6 2 12 4
2022-03-24 18:05:29
195
原创 问题 : 编程题:类---矩形类
矩形类中有成员函数getArea来获取矩形的面积,成员getPerimeter来获取矩形的周长,还有适当的构造函数。矩形类中有两个数据成员,width成员表示矩形的宽,length成员表示矩形的长;设计一个面向对象的程序,计算矩形的周长和面积并输出。Perimeter=矩形的周长。Area=矩形的面积;矩形的宽和矩形的长。
2023-03-06 15:12:41
527
原创 问题 : 类的应用
2) 后进者先出,即最后被存入的数据将首先被取出。取出也只可以从顶端进行,即后进先出。1) 用数组描述的顺序栈,只有一个对数据进行存入和取出的端口;设计一个栈类完成压栈和出栈操作 (0≤n≤8)。提交压栈,出栈函数即可。
2023-03-06 15:10:07
267
原创 问题 : C++类实现最大数的输出
输入 n 个数,找出最大的数并输出(可能小于0)。输出的最大的数,每个输出结果占一行。输入 n,并输入 nnn 个数。主函数未给出,需要自己加上。
2023-03-06 15:08:42
466
原创 问题 C: 删除线性表节点(线性表)
已知长度为 nnn 的线性表 AAA 采用链式存储结构,请写一时间复杂度为 O(n)O(n)O(n)、空间复杂度为 O(1)O(1)O(1) 的算法,该算法删除线性表中所有值为。O(1)O(1)O(1) 表示算法的辅助空间为常量。本题只需要提交填写部分的代码。
2023-03-06 15:06:57
187
原创 问题 A: 长方柱类
(1)由键盘输入长方柱的长、宽、高;(3)输出这长方柱的体积和表面积。编写基于对象的程序,求长方柱。(2)计算长方柱的体积。长方柱的体积和表面积。长方柱的长、宽、高。
2023-03-06 15:04:19
167
原创 问题 B: 大斐波那契数列
在数学上,斐波纳契数列以如下被以递归的方法定义:F[0]=1,F[1]=1,F[n]=F[n-1]+F[n-2](n>=2,n∈N*)。斐波那契数列,又称黄金比例数列,指的是这样一个数列:1、1、2、3、5、8、13、21、……总之斐波纳契数列有很多应用,现在你能用类的方法实现吗?输出前51个斐波那契数。
2023-03-06 15:04:01
206
原创 YTU——C语言习题 折半查找
有 n个数(n≤1000000),这 n个数已按从大到小顺序存放在一个数组中,然后有 T次查询,每次输入一个数,要求用折半查找法找出该数在数组中第一次出现的位置。如果不在数组中输出 。第一行数组元素的个数 n。第二行 n 个数组元素的值。第三行输入查询次数 T(T≤100000)。往下有 T 行,每行输入一个需要查询的数字。查找的值在数组中的位置。样例输入 #1样例输出 #1参考解答:...
2022-06-05 20:33:43
981
原创 最长公共子序列
【问题描述】 一个给定序列的子序列是在该序列中删去若干元素后得到的序列。确切地说,若给定序列X=,则另一序列Z=是X的子序列是指存在一个严格递增的下标序列,使得对于所有j=1,2,…,k有: Xij=Zj例如,序列z=是序列X=的子序列,相应的递增下标序列为。【样例输入】ABCBDAB BDCABA【样例输出】 4 BCBA参考解答:
2022-06-01 15:14:29
217
原创 问题:拦截导弹
某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统。但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度。某天,雷达捕捉到敌国的导弹来袭。由于该系统还在试用阶段,所以只有一套系统,因此有可能不能拦截所有的导弹。 输入导弹依次飞来的高度(雷达给出的高度数据是不大于30000的正整数,导弹数不超过1000),计算这套系统最多能拦截多少导弹,如果要拦截所有导弹最少要配备多少套这种导弹拦截系统。样例:INPUT
2022-06-01 15:11:37
222
原创 YTU——问题 : 折半查找关键字
题目描述编写一个程序,输出一个数在长度为 n 的顺序表的从小到大的排名,并输出其在原顺序表中的下标 (下标从 1开始)。输入第一行一个数 n, 表示这个顺序表的长度 (n≤2×10^5)。第二行有 n个数,表示这个顺序表中的元素,保证这些元素两两不同,但是不保证递增,注意下标从 1开始,所有数均 ≤2*10^9。第三行一个数 t,表示询问次数 (t≤50000)。第四行 t个数,表示询问的这 t个数。输出对于每个询问,如果这个数在顺序表中存在,那么输出一行两个数,表示所查询的
2022-05-22 11:40:15
544
原创 YTU——问题 : 这样查找效率高
题目描述在 n个整数构成的有序序列中,找到关键字 key 在序列中出现的位置。当 key在序列中不出现时,输出 No。为了提高查找效率,利用待查找序列有序的特征,程序使用“二分查找”的算法。二分查找的做法是:首先,将表中间位置记录的关键字与查找关键字 key 比较,如果两者相等,则查找成功;否则利用中间位置记录将表分成前、后两个子表,如果中间位置记录的关键字大于查找关键字,则进一步查找前一子表,否则进一步查找后一子表。重复以上过程,直到找到满足条件的记录,使查找成功,或直到子表不存在为止,此时查找不.
2022-05-22 11:32:11
795
原创 YTU——问题 : 哈希查找2
根据给定的一系列整数关键字和素数p,用除留余数法定义hash函数H(Key)=Key%p,将关键字映射到长度为p的哈希表中,用线性探测法解决冲突。重复关键字放在hash表中的同一位置。输入输入数据第一行为两个正整数N(N <= 1000)和p(p 为大于等于 N的最小素数),N是关键字总数,p是hash表长度,第2行给出N个正整数关键字,数字间以空格间隔。输出输出每个关键字在hash表中的位置,以空格间隔。注意最后一个数字后面不要有空格。输入输出输入 #5 524 ..
2022-05-22 11:31:01
360
原创 YTU——问题 : 哈希查找1
题目描述题目描述有一个数据字典,里面存有n个不同数字(n<=100000),以哈希函数为f(x)=x+1存在数据字典中。小明现在接到一个任务,这项任务看起来非常简单——给定m个数字,分别查询这m个数字是否出现在字典之中;但是考虑到你是个优秀的程序员,如果查询的数存在表中你不仅要告诉小明数据存在还得贴心的告诉小明他查询的数的在数据字典中的下标(下标从2开始到n+1)。若查询的数不存在,则返回-1;输入第一行包含两个整数nm,分别代表字典中数字的个数和要查询的数字的个数。接着n个数...
2022-05-22 11:29:10
244
原创 YTU——问题 : 寻找子串个数(串)
题目描述从字符串 s中找出字符串 t 出现的次数,没有则输出 0.输入输入两个字符串输出输出个数输入输出样哩样例输入112121121样例输出2参考解答:#include <stdio.h>#include <stdlib.h>int main(){ int k; char s[100], a[100]; int i, j; int t, l = 0; gets(s); ge
2022-05-22 10:54:25
911
原创 YTU 问题 : 双向冒泡排序
题目描述注:本题只需要提交填写部分的代码双向冒泡从小到大排序算法描述:(1)从当前序列的第1个元素开始,对相邻元素从前往后两两比较,不满足条件(从小到大)则彼此交换,一直到序列结束。此时最后1个元素为最大值。(2)从当前序列的倒数第2个元素开始,对相邻元素从后往前两两比较,不满足条件则彼此交换,一直到序列开始。此时第1个元素为最小值。(3)将第2个元素作为新序列的开始,倒数第2个元素作为新序列的结束,重复(1)~(2),直到新序列没有元素。改进的双向冒泡从小到大排序算法描述:(a)在上述算
2022-05-11 16:18:27
428
原创 YTU 问题 : 01 串排序
题目描述将 01 串首先按长度排序,长度相同时,按 1的个数多少进行排序,1的个数相同时再按 ASCII 码值排序。输入输入数据中含有一些 01 串,01 串的长度不大于 256 个字符。输出重新排列 01 串的顺序。使得串按基本描述的方式排序。输入输出输入 #110011111000011011010101101100样例输出 #101110010101010000110110011111参考解答:#include<ios..
2022-05-11 16:15:45
1747
5
原创 YTU 问题 : 2.1.3 Sorting a Three-Valued Sequence 三值的排序
题目描述排序是一种很频繁的计算任务。现在考虑最多只有三值的排序问题。一个实际的例子是,当我们给某项竞赛的优胜者按金银铜牌序的时候。 在这个任务中可能的值只有三种 111,222 和 333。我们用交换的方法把他排成升序的。 写一个程序计算出,给定的一个由 1,2,31,2,31,2,3 组成的数字序列,排成升序所需的最少交换次数。输入第一行输入 N(1≤N≤1000)。第 2到 N+1 行,每行一个数字(1、2 或 3),共 N 行。输出共一行,一个数字。表示排成升序所需的最少交换次数
2022-05-11 16:14:35
278
原创 YTU 问题 : 交换瓶子
题目描述有 N个瓶子,编号 1,2,…,N放在架子上。比如有 5 个瓶子:21354要求每次拿起 2个瓶子,交换它们的位置。经过若干次后,使得瓶子的序号为:12345对于这么简单的情况,显然,至少需要交换 2 次就可以复位。如果瓶子更多呢?你可以通过编程来解决。输入第一行有一个正整数 N (N<10000), 表示瓶子的数目第二行有 N个正整数,用空格分开,表示瓶子目前的排列情况。输出输出数据为一行一个正整数,表示至少交换多少次,才能完成排序。输入输出样例..
2022-05-11 16:13:32
474
原创 YTU 问题 : 数组奇偶操作
题目描述给你一个有n个整数的序列,a1,a2,a3,....an(下标从1开始)。现在进行下列操作,将下标为奇数的元素按照升序排列,下标为偶数的元素按照降序排列,然后输出。比如,给你n=8,序列为 2 6 7 1 3 8 9 4。则下标为奇数的元素有2 7 3 9,排序后为2 3 7 9。下标为偶数的元素有6 1 8 4,排序后为8 6 4 1。则输出为 2 8 3 6 7 4 9 1输入输入数据包含多组。每一组测试数据的第一行为一个整数n(n<1000),表示序列的个数,第二行
2022-05-11 16:11:47
650
原创 YTU 问题 : 逆序数字排序
题目描述现在给你一组数字,要求你把每一个数字逆序(如 123 变为 321)之后进行排序,按从小到大的顺序排列。输入第一行一个数字 T(T<20)表示共有 T 组测试数据。下面 T 行:每组开始有一个数字 X(X<20),表示该组有 X 个数字,后面是该组的 X(X<10000)个数字。输出每组数据输出一行,输出按从小到大排列好的数字。输入输出样例样例输入 #124 12 23 15 103 123 911 119样例输出 #11 21.
2022-05-11 16:10:36
876
1
原创 YTU 问题 : 排序
[提交][状态][讨论版]题目描述给你一组数,需要你从小到大排序好后输出输入第一行一个数n(n≤1000000),表示数的个数第二行n个数(保证≤10^9),两个数之间用空格隔开输出一行n个数,即排序好后的序列,两个数用空格隔开输入输出样例样例输入 #181 8 9 6 5 4 3 1样例输出 #11 1 3 4 5 6 8 9参考解答:#include <stdio.h>#include <stdlib.h>...
2022-05-11 16:09:17
343
原创 YTU 问题 : 快速排序算法(递归)
题目描述 快速排序算法它的时间复杂度为O(nlog2n),空间复杂度为O(log2n),其效率较高,并且它的排序思想-----分治法也非常实用,故常出现于腾讯、微软等知名IT公司的笔试面试中。该方法的基本思想是:先从数列中取出一个数作为基准数。(本题中数组第一个数为基准数) 分区过程,将小于或等于它的数全放到它的左边,将大于它的数全放到它的右边。(挖坑-填坑) 再对左右区间重复第二步,直到各区间只有一个数。(递归-分治)下列已给出部分程序代码,请补全(只有quickS...
2022-05-11 16:07:49
730
原创 问题 : C++习题-快速排序
题目描述以某个数为标准,把比这个数大的都移到它的后面,比这个数小的都移到它的前面,这样它后面的任意一个数都比它前面的任意一个数大,再将这前后两组数再分别重复这一过程,最后就会得到有序的数列;补充:如果从大到小排列可以将比这个数大的都移到它的前面,比这个数小的都移到它的后面.快速排序从小到大排序算法描述:1)设置两个变量first、last,令first等于一组数的第一个数的下标,last等于一组数的最后一个数的下标;2)以某个数组元素作为关键数据(这里将这组数的第一个数作为关键数据)..
2022-05-11 16:06:37
185
原创 问题 : 算法设计:直接插入排序
题目描述算法设计:实现直接插入排序。void InsertSort(RecType R[], int n) 为对 R[0…n−1] 按递增有序进行直接插入排序。主函数已经给出。注意:只提交 void InsertSort(RecType R[], int n) 部分。#include <stdio.h>#define MAXE 20 // 线性表中最多元素个数typedef int KeyType;typedef char InfoType[10];typ
2022-05-11 16:05:31
578
原创 问题 : 部分代码 - 冒泡法排序
题目描述用冒泡法对输入的 10个字符从小到大排序。输入长度为 10 的字符串,仅包含字母,数字。输出按 ASCII 排好序的字符串输入输出样例样例输入 #1qwertyuiop样例输出 #1eiopqrtuwy提示程序代码已经给出,提交时只需提交你补充的代码#include <stdio.h>#define N 10int main(){ char a[N]; int m, i, j; scanf("..
2022-05-06 19:15:30
393
原创 问题 : 学生信息排序
题目描述定义存放一个学生信息的结构体类型,学生信息包括:姓名,学号,性别,院系,要求在随意输入 5 个学生的相关信息后,按照学号从小到大顺序输出这些学生的信息。输入先输入 5 名学生的信息,按学号顺序排序输出后在输入要统计的院系名称。输出先按学号从小到大的顺序输出学生信息。输入输出样例样例输入 #1zhang3 20149003 M 信息系zhang5 20149005 F 信息系zhang10 20149010 F ..
2022-05-06 19:14:22
408
原创 问题 : C语言习题 不等长字符串排序
题目描述在主函数中输入 n(n≤10)个不等长的字符串,用另一函数对它们排序,然后在主函数输出这 n个已排好序的字符串。输入n和 n个不等长字符串。输出n个已排好序的字符串。输入输出样例样例输入 #15abcd12345678abc123456ab123样例输出 #112345612345678ab123abcabcd提示主函数已给定如下,提交时不需要包含下述主函数。C:int main(){ ...
2022-05-06 19:09:29
1200
1
原创 文件操作 - 文本文件读入
题目描述现有 100 名学生的姓名、学号、英语、数学、语文成绩,存储在一个文本文件 student.dic 中(姓名不超过 20个字符,学号和各科成绩为整型,各数据之间用空格分隔),现要求将指定行数的学生信息输出,每条信息占一行。前 5 行学生信息为:akdh 13773 84 83 66fjka 30257 15 14 88sfhklas 61281 87 8 31hfu 38635 55 50 60iwehfk 92803 54 6 77 输入要输出行号的整数序列,以 0.
2022-05-06 19:05:35
1473
原创 英文字符大小写(文件)
题目描述文本文件 score.dic 中存储了 n名学生的信息(班级编号,姓名,成绩),每个学生信息占一行,每行的数据之间使用制表符分割,如下所示:145811 fuxin 100 145811 chengxian 90 145812 zhangxue 92 145812 lijun 88...将文本文件 score.dic 中所有英文字母改成大写,其它字符保持不变,将结果输出。#include <stdio.h>#include <stdlib.h&.
2022-04-29 14:05:39
339
原创 文件操作 - 二进制文件读入
题目描述现有 100 名学生的姓名、学号、英语、数学、语文成绩,存储在一个二进制文件 student.dic 中(姓名用 char[20],学号和各科成绩用 int 存储),现要求将指定行数的学生信息输出,每条信息占一行。前 5 行学生信息为:akdh 13773 84 83 66fjka 30257 15 14 88sfhklas 61281 87 8 31hfu 38635 55 50 60iwehfk 92803 54 6 77输入要输出行号的整数序列,以 0作为结束标志
2022-04-29 13:49:33
700
原创 C语言习题5.25--文件操作1
题目描述文本文件 score.dic 中存储了 n名学生的信息(班级编号,姓名,成绩),每个学生信息占一行,每行的数据之间使用制表符分割,如下所示:145811 fuxin 100145811 chengxian 90145812 zhangxue 92145812 lijun 88......文件中存储的学生信息按照班级编号升序排列,每个班级的人数可以不同,要求读取文件中所有学生的成绩,计算每个班级的平均成绩,将班级编号和平均成绩输出。主程序已给出,请根据提示补充缺失代码
2022-04-29 13:48:25
898
原创 问题 : C语言习题 利用参数宏进行角度与弧度转换
题目描述定义参数宏AngleToRadian(degree, minute, second),将度(degree)、分(minute)、秒(second)转换为弧度。#include <stdio.h>#define PI 3.14159/*******************/ 在此补充缺少的代码/*******************/int main(){ double degree, minute, second; scanf("%lf %lf.
2022-04-17 15:17:56
1140
原创 问题 : C语言习题 输出已交换后的两个值
题目描述定义一个带参的宏(或者模板函数),带有三个参数,第一个参数为类型,后两个参数的值互换,并写出程序,输入两个数作为使用宏时的实参。输出已交换后的两个值。输入两个短整型数,空格隔开;两个小数,空格隔开;两个长整数,空格隔开。输出交换后的两个数,空格隔开。输入输出样例样例输入 #11 21.5 2.565535 2147483647样例输出 #12 12.5 1.52147483647 65535提示主函数已给定如下C:in..
2022-04-17 15:15:58
364
原创 问题 : 更换火车头
题目描述假设火车有 nnn 节车厢(从前往后编号依次为 1,2,3,…,n),每节车厢的人数依次为 M1,M2,M3,…,Mn。火车头的编号为 0,连接在 1 号车厢上。火车进站后,将火车头从1 号车厢卸下,接在第 n 节车厢上,反方向行驶。即火车的1 号车厢为原来的第 n 号车厢,…,火车的 n 号车厢为原来的第 1 号车厢。请输出火车反向行驶后,每节车厢的人数。输入第一行:n;第二行:每节车厢的人数。输出火车反向行驶后,每节车厢的人数。输入输出样例样例输入 #1..
2022-04-17 15:13:25
579
原创 问题 D: 哪一天,哪一秒?
题目描述小王特爱数字。期末复习各门功课烧脑厉害,他想换换脑筋,就想算算数。他想任意给出一个时间(年月日时分秒),得出是一年当中的第几天,还有,这是一年中的第几秒。下面的程序,定义了一个结构体以及部分程序,可以对n个时间做如上的操作,请按给出程序限制的形式,定义出其他必须的函数并提交。输入整数 n,代表处理几个日期值;n行日期值,每行的整数分别代表年、月、日、时、分、秒,测试数据保证都是合法时间取值,即不会出类似 2月 30 号的输入。输出n 行输出,每行对应给出的时间是当年第几天
2022-04-17 15:10:29
475
原创 问题 B: 逆波兰表达式
题目描述逆波兰表达式是一种把运算符前置的算术表达式 , 例如普通的表达式 2 + 3 的逆波兰表示法为+ 2 3。逆波兰表达式的优点是运算符之间不必有优先级关系,也 不必用括号改变运算次序, 例如( 2 + 3 ) * 4 的逆波兰表示法为* + 2 3 4。本题求解逆波兰表达式的 值, 其中运算符包括+、-、*、/四种。输入输入为一行,其中运算符和运算数之间都用空格分隔,运算数是浮点数。输出输出为一行,为表达式的值(长度 ≤100)。输入输出样例样例输入 #1* + ..
2022-04-13 16:24:59
339
原创 问题 D: 括号匹配问题
题目描述在某个字符串(长度不超过100)中有左括号、右括号和大小写字母;规定(与常见的算数式子一样)任何一个左括号都从内到外与在它右边且距离最近的右括号匹配。写一个程序,找到无法匹配的左括号和右括号,输出原来字符串,并在下一行标出不能匹配的括号。不能匹配的左括号用"$"标注,不能匹配的右括号用"?"标注.输入输入包括多组数据,每组数据一行,包含一个字符串,只包含左右括号和大小写字母,字符串长度不超过100。 注意:cin.getline(str,100)最多只能输入99个字符!输出..
2022-04-13 16:02:00
222
原创 皇后问题——递归法
参考:#include <stdio.h>#include <math.h>#include <malloc.h>void nQueens(int* x, int n, int k); /*求解n皇后问题*/int place(int* x, int k); /*判断是否可以在第k行第x[k]列摆放皇后*/void printSolution(int* x, int n); /*输出求解结果*/int main(){
2022-04-13 15:25:35
264
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人