自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 收藏
  • 关注

原创 蓝桥杯算法提高VIP-Torry的困惑(提高型C语言)

一天,老师告诉他, 像2、3、5、7……Torry突然想到一个问题,前10、100、1000、10000?个质数的乘积是多少呢。老师愣住了,一时回答不出来。于是Torry求助于会编程的你,请你算出前n个质数的乘积。不过,考虑到你才接触编程不久,Torry只要你算出这 个数模上50000的值。因为是计算第n个质数,所以设循环从质数个数开始数,直到数量等于n。考虑到质数的大小,用long long来设置质数变量。仅包含一个正整数n,其中n< =100000。输出一行,即前n个质数的乘积模50000的值。

2025-08-25 16:29:26 219

原创 蓝桥杯算法提高VIP-打水问题(C语言)

例如样例中,Ti从小到大排序为1,2,3,4,5,6,7,将他们依次分配到3个龙头,则去龙头一打水的为1,4,7;N个人要打水,有M个水龙头,第i个人打水所需时间为Ti,请安排一个合理的方案使得所有人的等待时间之和尽量小。设置两个数组,一个是打水人数,一个是水龙头数,将打水人安排到空闲的水龙头处,计算每人的等待时间。因为是按照从小到大的顺序去打水,所以先去的人一定先打完,把人按照从先到后的顺序去分配水龙头就行。因为当前等待时间是之前所有人的打水时间,所以在每人打水前就要记录下等待时间,直到最后来到的人。

2025-08-24 15:50:32 307

原创 蓝桥杯基础练习VIP-完美的代价(C语言)

遇到单独字符时可以用公式计算移动次数,计算从此处到中心处的移动次数(因为相同字符是向右交换的,所以单独的字符会被挤到左边去,直接减去就行),如果此时字符串是偶数个或者有多个单独的字符,就输出Impossible。从左边开始定位,记录当前元素,再从右边开始找到相同元素,移动到与左边对应的位置,这样边缘的元素就对应完成,接着查找下一个元素,将所有移动次数记录下来然后输出。现在给你一个串,它不一定是回文的,请你计算最少的交换次数使得该串变成一个完美的回文串。交换的定义是:交换两个相邻的字符。

2025-08-23 15:14:49 159

原创 蓝桥杯2013年第四届真题-错误票据(C语言)

每行数据长度不等,是用空格分开的若干个(不大于100个)正整数(不大于100000),请注意行内和行末可能有多余的空格,你的程序需要能处理这些空格。将数据记录在字符串数组中,再将数据按空格为界依次提取,记录到新的数组中,最后将数组按顺序排列,找出缺失的数字与重复的数字输出。因为工作人员疏忽,在录入ID号的时候发生了一处错误,造成了某个ID断号,另外一个ID重号。全年所有票据的ID号是连续的,但ID的开始数码是随机选定的。你的任务是通过编程,找出断号的ID和重号的ID。其中,m表示断号ID,n表示重号ID。

2025-08-22 15:54:28 189

原创 蓝桥杯算法提高VIP-不同单词个数统计(C语言)

编写一个程序,输入一个句子,然后统计出这个句子当中不同的单词个数。例如:对于句子“one little two little three little boys”,总共有5个不同的单词:one, little, two, three, boys。先读入句子,从头开始循环,将读到的单词记录下来,将当前单词与列表内进行比较,如果出现过就清除单词,记录下一个;如果没出现就将当前单词加入单词列表中,再记录新单词,最终输出列表单词数。输出只有一行,是一个整数,表示句子中不同单词的个数。

2025-08-21 15:53:17 193

原创 蓝桥杯算法提高VIP-寻找三位数(C语言)

三位数最小的是123,最大是987,所以对第一个数设循环,从123到987/3,将元素乘2和3得到三个三位数,接着判断三个三位数是否由9个数组成,得到结果输出。判断时可以设个初始为0的数组,以三位数每一位作为下标对应的元素+1,最后判断下标1~9的元素是否全为1。,9共9个数分成三组,分别组成三个三位数,且使这三个三位数构成。输出每行有三个数,为满足题设三位数。各行为满足要求的不同解。例如:三个三位数192,384,576满足以上条件。1:2:3的比例,试求出所有满足条件的三个三位数。

2025-08-20 17:01:36 117

原创 蓝桥杯算法提高VIP-任意年月日历输出(C语言)

先计算闰年,计算过去几年几月的天数与7求余得到这个月的星期,再从这天开始输出日历,到了星期六就换下一行。设计一函数按照下述格式打印2007年以后(含)某年某月的日历,2007年以前的拒绝打印。为完成此函数,设计必要的辅助函数可能也是必要的。其中输入为年分和月份。注意:短线“-”个数要与题目中一致,否则系统会判为错误。已知2007年1月1日为星期一。

2025-08-19 16:00:49 296

原创 蓝桥杯基础练习VIP-高精度加法(C语言)

计算c = a + b的时候,首先将A[0]与B[0]相加,如果有进位产生,则把进位(即和的十位数)存入r,把和的个位数存入C[0],即C[0]等于(A[0]+B[0])%10。然后计算A[1]与B[1]相加,这时还应将低位进上来的值r也加起来,即C[1]应该是A[1]、B[1]和r三个数的和.如果又有进位产生,则仍可将新的进位存入到r中,和的个位存到C[1]中。定义一个数组A,A[0]用于存储a的个位,A[1]用于存储a的十位,依此类推。输入两个整数a和b,输出这两个整数的和。

2025-08-18 15:55:07 126

原创 蓝桥杯基础练习VIP-阶乘计算(C语言)

设立递归函数,将乘数与高精度数组每一位相乘,得到结果的个位保留在数组内,超出个位的部分存储起来,加入到下一位的计算中,计算完毕后递归到下一位乘数,最终返回数组位数。使用一个数组A来表示一个大整数a,A[0]表示a的个位,A[1]表示a的十位,依次类推。我的函数内将乘数按位数分成了数组,再分别计算,其实不用这一步,将乘数直接与高精度数相乘就可以,在计算的范围内,而且简单方便。用递归的方法将n的阶乘的每个数字相乘,用高精度计算得到带有结果的数组。首先将a设为1,然后乘2,乘3,当乘到n时,即得到了n!

2025-08-17 17:26:58 178

原创 蓝桥杯基础练习VIP-回形取数(C语言)

判断数据是否用过可以再设一个数组,用来记录下一步的数据是否被用过,如果用过就转向,如果转向后的数据还是被取用了就退出。回形取数就是沿矩阵的边取数,若当前方向上无数可取或已经取过,则左转90度。输入第一行是两个不超过200的正整数m, n,表示矩阵的行和列。输出只有一行,共mn个数,为输入矩阵回形取数得到的结果。数之间用一个空格分隔,行末不要有多余的空格。在边缘时根据路径朝向判断下一步是否超出范围,如果下一步超出矩阵范围就转向。结尾不能有空格,将第一个元素单独输出,之后输出元素在前面添加空格就行。

2025-08-16 16:29:01 169

原创 蓝桥杯基础练习VIP-矩阵乘法(C语言)

设立两个矩阵分别记录矩阵A和多次幂的矩阵,将两矩阵相乘后的结果存到新的矩阵中,再复制到多次幂矩阵中,多次幂矩阵初始为单位矩阵。设要得到的目标矩阵元素位置(i,j),则将两矩阵的i行所有元素与j列所有元素相乘后相加,得到目标位置的元素。第一行是一个正整数N、M(1< =N< =30, 0< =M< =5),表示矩阵A的阶数和要求的幂数。输出共N行,每行N个整数,表示A的M次幂所对应的矩阵。接下来N行,每行N个绝对值不超过10的非负整数,描述矩阵A的值。给定一个N阶矩阵A,输出A的M次幂(M是非负整数)

2025-08-15 16:42:04 195

原创 蓝桥杯基础练习VIP-FJ的字符串(C语言)

寻找规律,当前字符串组成是上一字符串加上第i个大写字母再接上一个字符串,用字符串的复制和衔接来完成。请输出相应的字符串AN,以一个换行符结束。输出中不得含有多余的空格或换行、回车符。你能找出其中的规律并写所有的数列AN吗?仅有一个数:N ≤ 26。

2025-08-14 17:29:49 203

原创 蓝桥杯2013年第四届真题-幸运数(C语言)

这时,3为第2个幸运数,然后把所有能被3整除的序号位置的数删去。注意,是序号位置,不是那个数本身能否被3整除!删除的应该是5,11, 17, ...此时7为第3个幸运数,然后再删去序号位置能被7整除的(19,39,...)先设一个自然数数组,再从头开始减去对应的幸运数和他的倍数的下标,组成新的数组。幸运数是波兰数学家乌拉姆命名的。程序输出 位于m和n之间的幸运数的个数(不包含m和n)。当这次的幸运数在m和n之间时就增加数字,减到n时记录数字个数。首先从1开始写出自然数1,2,3,4,5,6,....

2025-08-13 16:22:38 190

原创 整除的尾数(C语言)

题目描述一个整数,只知道前几位,不知道末二位,被另一个整数除尽了,那么该数的末二位该是什么呢输入格式输入数据有若干组,每组数据包含二个整数a,b(0<a<10000, 10<b<100),若遇到0 0则处理结束输出格式对应每组数据,将满足条件的所有尾数在一行内输出,格式见样本输出。同组数据的输出,其每个尾数之间空一格,行末没有空格。样例输入200 401992 950 0样例输出00 40 8015。

2025-08-12 17:08:11 215

原创 蓝桥杯历届试题-蚂蚁感冒(C语言)

定位感冒的蚂蚁的数量,然后找到前进方向上所有反方向行走的蚂蚁数量,就是被感染的蚂蚁数量,先找前进方向上的蚂蚁,如果没有蚂蚁发生碰撞,就只有这一只感染,如果有碰撞,则此蚂蚁掉头,再去找后面反方向前进的蚂蚁。因为蚂蚁速度相同,所以前面的蚂蚁不会被后面追上,又因为蚂蚁碰头后向后转,所以向左向右的蚂蚁数量是不变的,只要看总的蚂蚁数就行。因为所有的速度相同,所以后方的蚂蚁一定是由最初的蚂蚁感染的,最开始我没考虑到这一点,一直在找最边缘的蚂蚁,实际上根本没意义。它们的头有的朝左,有的朝右。

2025-08-11 22:42:26 185

原创 蓝桥杯历届试题-翻硬币(C语言)

现在小明的问题是:如果已知了初始状态和要达到的目标状态,每次只能同时翻转相邻的两个硬币,那么对特定的局面,最少要翻动多少次呢?桌上放着排成一排的若干硬币。我们用 * 表示正面,用 o 表示反面(是小写字母,不是零)。先输入两字符串,再将元素不同的位置翻硬币,因为下一个元素也会被翻,所以依次执行就行。两行等长的字符串,分别表示初始状态和要达到的目标状态。如果同时翻转左边的两个硬币,则变为:oooo***oooo。我们约定:把翻动相邻的两个硬币叫做一步操作。比如,可能情形是:**oo***oooo。

2025-08-10 16:09:28 234

原创 蓝桥杯历届试题-数字游戏(C语言)

接下来,坐在栋栋左手边的同学要说下一个数字2。再下面的一个同学要从上一个同学说的数字往下数两个数说出来,也就是说4。为了使数字不至于太大,栋栋和同学们约定,当在心中数到 k-1 时,下一个数字从0开始数。输入的第一行包含三个整数 n,k,T,其中 n 和 k 的意义如上面所述,T 表示到目前为止栋栋一共说出的数字个数。游戏进行了一会儿,栋栋想知道,到目前为止,他所有说出的数字的总和是多少。输出一行,包含一个整数,表示栋栋说出所有数的和。栋栋说出的数依次为1, 7, 9,和为17。

2025-08-09 16:34:38 206

原创 DNA(C语言)

小强从小就喜欢生命科学,他总是好奇花草鸟兽从哪里来的。终于, 小强上中学了,接触到了神圣的名词--DNA.它有一个双螺旋的结构。这让一根筋的小强抓破头皮,“要是能画出来就好了” 小强喊道。输入包含多组测试数据。第一个整数N(N<=15),N表示组数,每组数据包含两个整数a,b。a表示一个单位的DNA串的行数,a为奇数且 3<=a<=39。b表示重复度(1<=b<=20)。有多段DNA,设立函数单独输出每一段DNA,将其衔接,底部另外补齐。输出DNA的形状,每组输出间有一空行。

2025-08-08 16:44:50 203

原创 蓝桥杯2025年第十六届省赛真题-冷热数据队列(C语言)

1)若 p 不在队列 q 中(即既不在 q1 中,也不在 q2 中),则加载数据页 p ,并插入到 q2 的首部。对于所有评测用例,1 ≤ n1, n2 ≤ 104 ,1 ≤ m ≤ 105 ,0 ≤ vi ≤ 104。对于 60% 的评测用例,1 ≤ n1, n2 ≤ 100 ,1 ≤ m ≤ 1000;对于 40% 的评测用例,1 ≤ n1, n2 ≤ 20 ,1 ≤ m ≤ 100;对于 20% 的评测用例,1 ≤ n1, n2 ≤ 10 ,1 ≤ m ≤ 10;【评测用例规模与约定】

2025-08-07 17:35:34 601

原创 蓝桥杯2025年第十六届省赛真题-变换数组(C语言)

其中 bitCount(x) 表示数字 x 的二进制表示中 1 出现的次数,例如 bitCount(3) = 2 , 因为 3 的二进制表示为 11 ,其中 1 出现了两次。10 = (1010)2 ,21 = (10101)2 ,第二次变换后 a = [20, 63]。对于所有评测用例,1 ≤ n ≤ 103 ,0 ≤ m ≤ 5 ,0 ≤ ai ≤ 1000。输出一行,包含 n 个整数,相邻整数之间使用一个空格分隔,表示变换之 后得到的数组 a。对于 30% 的评测用例,1 ≤ n ≤ 10;

2025-08-06 17:01:39 313

原创 蓝桥杯历届试题-回文数字(C语言)

观察数字:12321,123321 都有一个共同的特征,无论从左到右读还是从右向左读,都是相同的。5位数字和6位数字分开计算,将两端的数字相加后再被目标数减去,得到中间数,如果中间数是个位正整数,则符合条件,拼成回文数输出。只有五六位回文数,所以只取小于10的个位正整数,符合要求就把他们拼成回文数。因为按从小到大输出,回文数两端相等,且前一位大于后一位,所以组成嵌套循环。本题要求你找到一些5位或6位的十进制数字。若干行,每行包含一个满足要求的5位或6位整数。该数字的各个数位之和等于输入的整数。

2025-08-05 09:20:38 226

原创 蓝桥杯2013年第四届真题-剪格子(C语言)

要求求出左上角最小区域的格子数,所以我们从左上角开始计算,找出四周最大的格子相加来递归,如果相加后的数字大于一半总数,就寻找下一个最大的格子,如果四周的格子都不合格,就放弃这个格子。本题的要求就是请你编程判定:对给定的m x n 的格子中的整数,是否可以分割为两个部分,使得这两个区域的数字和相等。输出一个整数,表示在所有解中,包含左上角的分割区可能包含的最小的格子数目。如果存在多种解答,请输出包含左上角格子的那个区域包含的格子的最小数目。如果用C++能简单些,但我不会用,就用的C语言。

2025-08-04 10:19:41 177

原创 蓝桥杯2014年第五届真题-分糖果(C语言)

首先要记录上一个人分出的糖果数和这一个人分出的糖果数,得到两个数据之后再对当前糖果数进行分配,同时记录添加的数量。有n个小朋友围坐成一圈。你的任务是预测在已知的初始糖果情形下,老师一共需要补发多少个糖果。程序首先读入一个整数N(2< N< 100),表示小朋友的人数。一轮分糖后,拥有奇数颗糖的孩子由老师补给1个糖果,从而变成偶数。反复进行这个游戏,直到所有小朋友的糖果数都相同为止。要求程序输出一个整数,表示老师需要补发的糖果数。每个小朋友都把自己的糖果分一半给左手边的孩子。

2025-08-03 10:35:42 251

原创 计算两个日期之间的天数(c语言)

通过代码得到两种天数,一是起始日期减去当年1月1日得到的天数,二是结束日期减去起始年份1月1日得到的天数,将这两个天数相减就得到目标天数。第一行包含三个整数startYear,startMonth,startDay,分别是起始年、月、日。第二行包含三个整数endYear,endMonth,endDay,分别是结束年、月、日。给定两个日期,计算相差的天数。比如2010-1-1和2010-1-3相差2天。年份范围在1~3000。保证日期正确且结束日期不早于起始日期。输出一个整数,即是两个日期相差的天数。

2025-08-03 01:19:19 196

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除