
C语言基础算法题
欢迎来到“C语言基础算法题”专栏!本专栏旨在帮助初学者和有一定基础的编程爱好者巩固和提升他们的C语言编程技能,通过系统化的算法题目训练,逐步掌握解决问题的能力。
一顾498
这个作者很懒,什么都没留下…
展开
-
积木画
同时, 小明有一块面积大小为 2×N 的画布, 画布由 2×N 个 1×1 区域构成。小明需要用以上两种积木将画布拼满, 他想知道总共有多少种不同的方式?积木可以任意旋转, 且画布的方向固定。输出一个整数表示答案。由于答案可能很大,所以输出其对 1000000007 取模后的值。对于所有测试用例,1≤N≤100000001≤N≤10000000.输入一个整数 N,表示画布大小。原创 2024-07-25 06:47:43 · 522 阅读 · 0 评论 -
直线
在平面直角坐标系中,两点可以确定一条直线。如果有多点在一条直线上, 那么这些点中任意两点确定的直线是同一条。请问这些点一共确定了多少条不同的直线。原创 2024-07-25 06:47:14 · 347 阅读 · 0 评论 -
等差素数列
2,3,5,7,11,13,....是素数序列。类似:7,37,67,97,127,157这样完全由素数组成的等差数列,叫等差素数数列。2004 年,格林与华人陶哲轩合作证明了:存在任意长度的素数等差数列。这是数论领域一项惊人的成果!长度为 10 的等差素数列,其公差最小值是多少?上边的数列公差为 30,长度为 6。原创 2024-07-24 10:14:00 · 261 阅读 · 0 评论 -
排序
请帮助小蓝找一个只包含小写英文字母且没有字母重复出现的字符串,对 该串的字符排序,正好需要 100 次交换。如果可能找到多个,请告诉小蓝最短的那个。如果最短的仍然有多个,请告诉小蓝字典序最小的那个。小蓝发现,如果对一个字符串中的字符排序,只允许交换相邻的两个字符, 则在所有可能的排序方案中,冒泡排序的总交换次数是最少的。小蓝找到了很多字符串试图排序,他恰巧碰到一个字符串,需要 100 次交 换,可是他忘了吧这个字符串记下来,现在找不到了。例如,对于字符串 lan 排序,只需要 1 次交换。原创 2024-07-24 10:13:42 · 276 阅读 · 0 评论 -
数字三角形
上图给出了一个数字三角形。从三角形的顶部到底部有很多条不同的路径。对于每条路径,把路径上面的数加起来可以得到一个和,你的任务就是找到最大的和。路径上的每一步只能从一个数走到下一层和它最近的左边的那个数或者右 边的那个数。此外,向左下走的次数与向右下走的次数相差不能超过 1。下面的 N 行给出数字三角形。数字三角形上的数都是 0 至 100 之间的整数。输入的第一行包含一个整数 N (1≤N≤100),表示三角形的行数。输出一个整数,表示答案。原创 2024-07-23 11:03:14 · 489 阅读 · 0 评论 -
回文日期
也有人表示 20200202 并不仅仅是一个回文日期,还是一个 ABABBABA 型的回文日期。2020 年春节期间,有一个特殊的日期引起了大家的注意:2020 年 2 月 2 日。对于所有评测用例,10000101≤N≤8999123110000101≤N≤89991231,保证 NN 是一个合法日期的 8 位数表示。给定一个 8 位数的日期,请你计算该日期之后下一个回文日期和下一个 ABABBABA 型的回文日期各是哪一天。第一行表示下一个回文日期,第二行表示下一个 ABABBABA 型的回文日期。原创 2024-07-23 11:02:56 · 589 阅读 · 0 评论 -
分糖果
程序首先读入一个整数 N (2<N<100)N (2<N<100),表示小朋友的人数。有 nn 个小朋友围坐成一圈。接着是一行用空格分开的 NN 个偶数(每个偶数不大于 1000,不小于 2)。一轮分糖后,拥有奇数颗糖的孩子由老师补给 1 个糖果,从而变成偶数。你的任务是预测在已知的初始糖果情形下,老师一共需要补发多少个糖果。反复进行这个游戏,直到所有小朋友的糖果数都相同为止。要求程序输出一个整数,表示老师需要补发的糖果数。每个小朋友都把自己的糖果分一半给左手边的孩子。原创 2024-07-22 21:57:24 · 344 阅读 · 0 评论 -
连号区间数
如果区间 [L,R][L,R] 里的所有元素(即此排列的第 LL 个到第 RR 个元素)递增排序后能得到一个长度为 R−L+1R−L+1 的"连续"数列,则称这个区间连号区间。当 NN 很小的时候,小明可以很快地算出答案,但是当 NN 变大的时候,问题就不是那么简单了,现在小明需要你的帮助。第二行是 NN 个不同的数字 Pi (1≤Pi≤N)Pi (1≤Pi≤N),表示这 NN 个数字的某一全排列。第一行是一个正整数 N(1≤N≤50×104)N(1≤N≤50×104), 表示全排列的规模。原创 2024-07-22 21:55:52 · 178 阅读 · 0 评论 -
Fibonacci 数列与黄金分割
输出 F[N]/F[N+1]F[N]/F[N+1]。答案保留 8 位小数。原创 2024-07-22 21:53:36 · 267 阅读 · 0 评论 -
等腰三角形
输入一个正整数 n(3<n<300) n(3<n<300),表示三角形的高度。用这个串填充三角形的三条边。从上方顶点开始,逆时针填充。本题目要求你在控制台输出一个由数字组成的等腰三角形。先用 1,2,3... 的自然数拼一个足够长的串。原创 2024-07-22 21:50:53 · 516 阅读 · 0 评论 -
倍数问题
众所周知,小葱同学擅长计算,尤其擅长计算一个数是否是另外一个数的倍数。但小葱只擅长两个数的情况,当有很多个数之后就会比较苦恼。现在小葱给了你 nn 个数,希望你从这 nn 个数中找到三个数,使得这三个数的和是 KK 的倍数,且这个和最大。其中,1≤n ≤105, 1≤K ≤1031≤n ≤105, 1≤K ≤103,给定的 nn 个数均不超过 108108。第二行 nn 个正整数,代表给定的 nn 个数。第一行包括 2 个正整数 n, Kn, K。输出一行一个整数代表所求的和。原创 2024-07-22 21:46:51 · 456 阅读 · 0 评论 -
螺旋矩阵
对于一个 n 行 m 列的表格,我们可以使用螺旋的方式给表格依次填上正整数,我们称填好的表格为一个螺旋矩阵。总通过次数: 2518 | 总提交次数: 2741 | 通过率: 91.9%难度: 困难 标签: 2020, 模拟, 暴力, 省模拟赛。输出一个整数,表示螺旋矩阵中第 r 行第 c 列的元素的值。原创 2024-06-29 22:51:56 · 526 阅读 · 0 评论 -
音节判断
小明对类似于 hello 这种单词非常感兴趣,这种单词可以正好分为四段,第一段由一个或多个辅音字母组成,第二段由一个或多个元音字母组成,第三段由一个或多个辅音字母组成,第四段由一个或多个元音字母组成。总通过次数: 1387 | 总提交次数: 1542 | 通过率: 89.9%输入一行,包含一个单词,单词中只包含小写英文字母。单词中的字母个数不超过 100。元音字母包括 a, e, i, o, u,共五个,其他均为辅音字母。给定一个单词,请判断这个单词是否也是这种单词,如果是请输出。原创 2024-06-26 20:43:30 · 431 阅读 · 0 评论 -
三元组中心问题
总通过次数: 1955 | 总提交次数: 2207 | 通过率: 88.6%难度: 困难 标签: 2020, 模拟, 思维, 省模拟赛。a2 和 a4 可能是三元组的中心。输出一行包含一个整数,表示答案。原创 2024-06-26 20:43:19 · 454 阅读 · 0 评论 -
机器人繁殖
每年 X 星系都会选出 1 个新出生的机器人发往太空。也就是说,如果 X 星系原有机器人 5 个,1 年后总数是:5 + 9 = 14,2 年后总数是:5 + 9 + 17 = 31。它们用 1 年的时间可以复制出 2 个自己,然后就失去复制能力。输入一行两个数字 n 和 s,用空格分开,含义如上。总通过次数: 803 | 总提交次数: 958 | 通过率: 83.8%如果已经探测经过 n 年后的机器人总数 s ,你能算出最初有多少机器人吗?要求输出一行,一个整数,表示最初有机器人多少个。原创 2024-06-21 13:24:10 · 353 阅读 · 0 评论 -
奇怪的数列
总通过次数: 1911 | 总提交次数: 2089 | 通过率: 91.5%第二行,一个数字 n,表示需要你连续变换多少次,n 不超过 20。难度: 困难 标签: 2015, 模拟, 国赛。第一行输入一个数字组成的串,不超过 100 位。输出一个串,表示最后一次变换完的结果。原创 2024-06-21 13:20:30 · 678 阅读 · 0 评论 -
冰雹数
这段代码的目的是找出从2到给定整数N中任意整数开始,按照3n+1规则最终生成的序列中的最大值。它通过遍历每个整数,使用循环计算直到序列达到1,并在计算过程中记录并更新出现的最大值。原创 2024-06-20 19:21:48 · 380 阅读 · 0 评论 -
四平方和
这段代码通过三重嵌套循环,穷举所有可能的非负整数解,并判断是否满足 ( a^2 + b^2 + c^2 + d^2 = n )。在找到第一个满足条件的解后立即输出,并结束程序运行。由于没有要求输出所有解,因此只输出找到的第一个解即可。原创 2024-06-20 19:21:39 · 489 阅读 · 0 评论 -
小计算器
总通过次数: 733 | 总提交次数: 909 | 通过率: 80.6%难度: 困难 标签: 2017, 模拟, 国赛。依次输出每一次 'EQUAL' 得到的结果。原创 2024-06-20 08:50:52 · 524 阅读 · 0 评论 -
图形排版
2.如果当前行剩余宽度大于 0,并且小于下一张图片,则下一张图片会按比例缩放到宽度为当前行剩余宽度(高度向上取整),然后放入当前行。例如再放入一张 4x9 的图片,由于剩余宽度是 2,这张图片会被压缩到 2x5,再被放入第一行的末尾。3.如果当前行剩余宽度为 0,该工具会从下一行开始继续对剩余的图片进行排版,直到所有图片都处理完毕。现在由于排版高度过高,图片的先后顺序也不能改变,小明只好从 N 张图片中选择一张删除掉以降低总高度。他希望剩余 N-1 张图片按原顺序的排版高度最低,你能求出最低高度是多少么?原创 2024-06-20 08:50:40 · 569 阅读 · 0 评论 -
日期问题
这些历史文献中出现了很多日期。令小明头疼的是,这些日期采用的格式非常不统一,有采用年/月/日的,有采用月/日/年的,还有采用日/月/年的。比如 02/03/04,可能是 2002 年 03 月 04 日、2004 年 02 月 03 日或 2004 年 03 月 02 日。更加麻烦的是,年份也都省略了前两位,使得文献上的一个日期,存在很多可能的日期与其对应。总通过次数: 6739 | 总提交次数: 8832 | 通过率: 76.3%难度: 困难 标签: 2017, 暴力, 枚举, 省赛。原创 2024-06-19 09:10:02 · 435 阅读 · 0 评论 -
k倍区间
总通过次数: 8478 | 总提交次数: 12714 | 通过率: 66.7%难度: 困难 标签: 2017, 暴力, 省赛。:用于记录每种余数的出现次数。是为了确保能够存储所有可能的余数,即。输出一个整数,代表 K 倍区间的数目。:从标准输入读取数组长度。:将最终计算得到的结果。原创 2024-06-19 09:09:53 · 349 阅读 · 0 评论 -
X 进制减法
现在有两个 X 进制表示的整数 A 和 B, 但是其具体每一数位的进制还不确 定, 只知道 A 和 B 是同一进制规则, 且每一数位最高为 N 进制, 最低为二进 制。请你算出 A−B 的结果最小可能是多少。X 进制是一种很神奇的进制, 因为其每一数位的进制并不固定!例如说某 种 X 进制数, 最低数位为二进制, 第二数位为十进制, 第三数位为八进制, 则 X 进制数 321 转换为十进制数为 65。请注意, 你需要保证 A 和 B 在 X 进制下都是合法的, 即每一数位上的数 字要小于其进制。原创 2024-06-19 09:09:44 · 527 阅读 · 0 评论 -
修剪灌木
有 N 棵灌木整齐的从左到右排成一排。爱丽丝在每天傍晩会修剪一棵灌木, 让灌木的高度变为 0 厘米。爱丽丝修剪灌木的顺序是从最左侧的灌木开始, 每天向右修剪一棵灌木。当修剪了最右侧的灌木后, 她会调转方向, 下一天开始向左修剪灌木。直到修剪了最左的灌木后再次调转方向。灌木每天从早上到傍晩会长高 1 厘米, 而其余时间不会长高。在第一天的早晨, 所有灌木的高度都是 0 厘米。输出 N 行, 每行一个整数, 第 i 行表示从左到右第 i 棵树最高能长到多高。爱丽丝要完成一项修剪灌木的工作。原创 2024-06-19 09:09:34 · 476 阅读 · 0 评论 -
刷题统计
小明决定从下周一开始努力刷题准备蓝桥杯竞赛。他计划周一至周五每天 做 a 道题目, 周六和周日每天做 b 道题目。请你帮小明计算, 按照计划他将在 第几天实现做题数大于等于 n 题?总通过次数: 20584 | 总提交次数: 27994 | 通过率: 73.5%难度: 中等 标签: 2022, 模拟, 省赛。输入一行包含三个整数 a, b 和 n.输出一个整数代表天数。原创 2024-06-19 09:09:24 · 345 阅读 · 0 评论 -
砝码称重
这段代码通过动态规划的方法,使用二维数组d记录前i个元素能够组成的各种和的情况,最终计算出能够在前n个元素中组成的不同的和的数量,并输出结果。原创 2024-06-19 09:09:13 · 303 阅读 · 0 评论 -
跑步锻炼
小蓝跑步已经坚持了很长时间,从 2000 年 1月 1 日周六(含)到 2020 年 10 月 1 日周四(含)。请问这段时间小蓝总共跑步多少千米?正常情况下,小蓝每天跑 1 千米。如果某天是周一或者月初(1 日),为了激励自己,小蓝要跑 2 千米。如果同时是周一或月初,小蓝也是跑 2 千米。总通过次数: 28871 | 总提交次数: 30472 | 通过率: 94.7%难度: 中等 标签: 2020, 模拟, 枚举。小蓝每天都锻炼身体。原创 2024-06-19 08:09:30 · 183 阅读 · 0 评论 -
七段码
上图给出了七段码数码管的一个图示,数码管中一共有 77 段可以发光的二 极管,分别标记为 a, b, c, d, e, f, g。例如 c 发光,其他二极管不发光可以用来表达一种字符。在设计字符 的表达时,要求所有发光的二极管是连成一片的。例如:b,f 发光,其他二极管不发光则不能用来表达一种字符,因为发光 的二极管没有连成一片。例如:a, b, c, d, e 发光,f,g 不发光可以用来表达一种字符。例如:b 发光,其他二极管不发光可以用来表达一种字符。小蓝要用七段码数码管来表示一种特殊的文字。原创 2024-06-19 08:09:02 · 191 阅读 · 0 评论 -
蛇形填数
容易看出矩阵第二行第二列中的数是 5。请你计算矩阵中第 2020 行第 2020 列的数是多少?总通过次数: 30694 | 总提交次数: 31626 | 通过率: 97.1%难度: 中等 标签: 2020, 模拟, 规律, 思维, 省赛。如下图所示,小明用从 1 开始的正整数“蛇形”填充无限大的矩阵。原创 2024-06-19 07:03:37 · 350 阅读 · 0 评论 -
门牌制作
小蓝制作门牌的方法是先制作 0 到 9 这几个数字字符,最后根据需要将字符粘贴到门牌上,例如门牌 1017 需要依次粘贴字符 1、0、1、7,即需要 1 个字符 0,2 个字符 1,1个字符 7。总通过次数: 59694 | 总提交次数: 61954 | 通过率: 96.4%请问要制作所有的 1 到 2020 号门牌,总共需要多少个字符 2?这条街一共有 2020 位住户,门牌号从 1 到 2020编号。难度: 中等 标签: 2020, 模拟, 枚举, 省赛。小蓝要为一条街的住户制作门牌号。原创 2024-06-19 07:02:24 · 335 阅读 · 0 评论 -
单词分析
小蓝正在学习一门神奇的语言,这门语言中的单词都是由小写英文字母组 成,有些单词很长,远远超过正常英文单词的长度。小蓝学了很长时间也记不住一些单词,他准备不再完全记忆这些单词,而是根据单词中哪个字母出现得最多来分辨单词。输出两行,第一行包含一个英文字母,表示单词中出现得最多的字母是哪 个。如果有多个字母出现的次数相等,输出字典序最小的那个。现在,请你帮助小蓝,给了一个单词后,帮助他找到出现最多的字母和这 个字母出现的次数。第二行包含一个整数,表示出现得最多的那个字母在单词中出现的次数。原创 2024-06-18 14:35:40 · 289 阅读 · 0 评论 -
成绩统计
小蓝给学生们组织了一场考试,卷面总分为 100 分,每个学生的得分都是一个 0 到 100 的整数。总通过次数: 63524 | 总提交次数: 70229 | 通过率: 90.5%输出两行,每行一个百分数,分别表示及格率和优秀率。百分号前的部分 四舍五入保留整数。如果得分至少是 60 分,则称为及格。如果得分至少为 85 分,则称为优秀。请计算及格率和优秀率,用百分数表示,百分号前的部分四舍五入保留整 数。难度: 中等 标签: 2020, 模拟, 省赛。原创 2024-06-18 14:35:24 · 218 阅读 · 0 评论 -
旋转
接下来 n行,每行 m 个整数,表示给定的图片。图片中的每个元素(像 素)为一个值为 0 至 255 之间的整数(包含 0 和 255)。总通过次数: 4278 | 总提交次数: 4473 | 通过率: 95.6%输入的第一行包含两个整数 n,m,分别表示行数和列数。难度: 中等 标签: 2019, 暴力, 省赛。输出 m 行 n 列,表示旋转后的图片。原创 2024-06-18 08:11:29 · 225 阅读 · 0 评论 -
特别数的和
小明对数位中含有 2、0、1、9 的数字很感兴趣(不包括前导 0),在 1 到 40 中这样的数包括 1、2、9、10 至 32、39 和 40,共 28 个,他们的和是 574。总通过次数: 25268 | 总提交次数: 26226 | 通过率: 96.3%难度: 中等 标签: 2019, 暴力, 枚举, 省赛。请问,在 1 到 nn 中,所有这样的数的和是多少?输出一行,包含一个整数,表示满足条件的数的和。原创 2024-06-18 08:11:18 · 141 阅读 · 0 评论 -
缩位求和
总通过次数: 3022 | 总提交次数: 3272 | 通过率: 92.4%难度: 中等 标签: 2018, 模拟, 省赛。输出为一位数,表示反复逐位求和的结果。原创 2024-06-18 00:39:36 · 200 阅读 · 0 评论 -
螺旋折线
螺旋折线经过平面上所有整点恰好一次原创 2024-06-18 00:39:19 · 313 阅读 · 0 评论 -
最长递增
总通过次数: 5105 | 总提交次数: 5446 | 通过率: 93.7%难度: 中等 标签: 2020, 模拟, 省模拟赛。输出一行包含一个整数,表示答案。原创 2024-06-17 01:02:17 · 285 阅读 · 0 评论 -
次数差
x 星球有 26 只球队,分别用 a ~ z 的 26 个字母代表。他们总是不停地比赛。在某一赛段,哪个球队获胜了,就记录下代表它的字母,这样就形成一个长长的串。国王总是询问:获胜次数最多的和获胜次数最少的有多大差距?(当然,他不关心那些一次也没获胜的,认为他们在怠工罢了)原创 2024-06-17 01:02:03 · 252 阅读 · 0 评论 -
递增三元组
总通过次数: 4618 | 总提交次数: 7179 | 通过率: 64.3%难度: 中等 标签: 2018, 暴力, 省赛。输出一个整数表示答案。原创 2024-06-17 01:01:45 · 325 阅读 · 0 评论 -
洁净数
小明非常不喜欢数字 2,包括那些数位上包含数字 2 的数。如果一个数的数位不包含数字 2,小明将它称为洁净数。请问在整数 1 至 nn 中,洁净数有多少个?原创 2024-06-17 00:27:07 · 355 阅读 · 0 评论