- 博客(38)
- 收藏
- 关注
原创 day36:找出质数、翻译字符串、分割数字并排序
1. 难点在从小到大循环找子串,我通过两个循环实现2. 字符串与整型的相互转换,通过sstream库实现整型转换字符串:stringstream ss;ss << num;字符串转换为整型:stringstream ss(s);ss >> num;
2026-03-04 00:37:41
386
原创 day35:构造序列、纯粹合数
1. 字符 - '0'把数字字符转成整数,数字 + '0'把整数转回字符2. 预生成 1-9 轮的所有序列,而不是每次输入 n 都重新生成,这个思路很重要。
2026-03-03 00:41:58
656
原创 day34:最长的单词、求字符串的起始位置、隐藏口令
1.逐行读取输入,用字符串流分割每行的单词(自动处理多个空格);2. 遍历分割后的单词,记录长度最长且最先出现的单词。
2026-02-27 00:23:47
621
原创 day33:奖学金、回文数2、加法器
1. 按 5 项奖学金规则逐项判断并累加奖金,同时需统计每组数据的最高奖金学生2. 用结构体存储学生姓名、成绩、身份标识等信息。
2026-02-26 00:11:18
715
原创 day32:隐藏口令、求字符串的起始位置、最长的单词
1. 初始化双指针 i=0、j=1,k=0(偏移量)2. 比较 s [(i+k)% n] 和 s [(j+k)% n],根据大小关系移动指针3. 最终取 i、j 中较小值,即为最小表示的起始索引(0 开始),直接输出该索引。
2026-02-25 00:17:03
582
原创 day31:字符串中找整数、乒乓球、字符串统计
1. 遍历字符串时需判断字符是否为数字,通过isdigit()函数可快速判定字符是否是 0-9 的数字字符2. 提取连续数字字符拼接为整数:遇到数字字符时,通过num = num * 10 + (s[i] - '0')的方式累加计算,非数字字符时完成当前整数提取并重置临时变量3. 需处理字符串首尾为数字、连续多个数字、单个数字以及包含 0 开头数字(按常规整数提取)的情况,确保所有整数都被正确识别。
2026-02-22 00:15:39
631
原创 day29:删除字符(重要)、手机短号、字符串统计
1. cin当作输入时,会自动跳过换行符和空格,或者作为下一个输入的分割点,所以如果要读入带有空格或换行符的字符串,需要用getline(cin,x)函数赋值2. cin.get() 与 getline(cin,x)区别cin.get()只能读取单个字符,而且依靠=赋值getline(cin,x)赋值字符串给x3. 若要第一行读取第一个值,第二行读取第二个值,则使用cin.ignore();忽略第一行后的换行符,读取第二行的目标字符(包括空格)
2026-02-19 23:54:50
619
原创 day28:求小数位数个数、进制转换、表达式求值
写题时不能仅满足 常规输入正确,还要考虑边界情况:比如输入包含多个小数点(12.34.56)、小数点后有非数字字符(12.3a45)、小数点在末尾(123.)等。
2026-02-19 00:02:22
645
原创 day27:螺旋方阵(中)、约瑟夫环2(难)、求小数位数个数(易)
解决该问题可分为三个关键步骤:1. 初始化:构建包含 1~2k 编号的环形队列,从 m=1 开始逐一验证2. 模拟验证:对每个 m,计算每次出列位置((当前位置 + m-1)% 剩余人数),取出对应编号并检查是否为绑匪,若前 k 次出列有任意一人质则跳过当前 m3. 终止返回:找到第一个满足 “前 k 次出列均为绑匪” 的 m,即为最小符合条件的值。整个过程通过 “枚举 + 模拟” 的方式,确保找到最小且符合要求的 m。
2026-02-15 00:51:43
589
原创 day25:魔方阵(中)、约瑟夫环(难)、水果价格(易)
1. 设置两对值,last记录上一个点的位置,current记录现点的位置2. 先按照规则2对current下标赋值,进行溢出判断3. 若没有溢出,进行位置值判断。
2026-02-13 01:10:40
697
原创 day24:数字金字塔(中)、稀疏矩阵(中)、矩阵转换(中)
1. 二维数组的定义注意事项>>标红部分不能连起来,否则会被判定为输入符号正确为:> >2. 贪心算法:由于从头开始,每一个头都有两种走向,特别复杂若从尾开始,选取上方两个最大值,则会逐渐收住。
2026-02-12 00:58:16
667
原创 day23:发牌(易)、牛棚问题(难)、等差数列(难)
1. 推荐使用二维数组,我只使用了一维数组,那是因为我觉得将牌整齐排放,给定四个玩家0,1,2,3的初始下标,每4个一张牌刚好能排完。
2026-02-10 23:40:41
608
原创 day21:求n天后的日期(中)、菱形输出(中)、三角形的个数(中)
1. 传入的年月日,天数并入n种,从month开始遍历,days数组的下标是month-1,但是要判断本年和下一年是否是闰年。2. 当月份是12月时,若day_sum减去12月天数后<0,则停留在这个月,若>0,则year++并且i归零3. 要注意次序问题,i归零会多减一次。
2026-02-09 00:39:33
559
原创 day20:分拆素数和(中)、歌德巴赫猜想(中)、N的倍数(中)
1. 两个不同素数和,只需要定其中一个是素数,接着判断num减去这个数是否也是素数即可,比较简单。
2026-02-08 00:01:40
632
原创 day19:倒数数列(易)、排列数(易)、亲和数(易)
1. 四舍五入的函数库是iomanip,如果不记得可以直接用万能头文件2. 如果一个浮点数需要与一个整型变量计算,最好将整型变量也改变为浮点数。
2026-02-07 01:17:25
605
原创 day18:最少拦截系统(难)、求N!(难)、素数表(易)
1. 定义两个数组,high记录所有飞弹的顺序和高度,system记录所需的系统以及该系统拦截的上一次导弹高度2. 拦截的第一枚导弹不论高度都需要开辟一个新系统,所以单独讨论3. 其后每拦截一枚,为使系统数最少,需要让与导弹高度最相符的一个系统拦截(用min_high记录)
2026-02-05 23:57:51
524
原创 day17:序列(难)、双重回文数(难)、人见人爱A-B(中)
1. 先找到最接近数k的序列,然后计算出与k相差的值。将差均匀分配(从后往前)到每一项上(使间隔最小)
2026-02-05 00:30:25
687
原创 day16:数列1(中)、部落人乘法(中)、按要求输出序列(中)
1. 用数组记录存入的数值,start记录初始下标,len记录每次遍历所取连续的长度(len不超过size)2. 与前面的遍历不同,此处不能够循环,若start + len超过size,则需要break3. 每次sum符合条件都count++
2026-02-04 00:34:27
703
原创 day15:回文数(中)、特殊四位数(中)、最大值(中)、英语打卡
初始思路:1. 第一次输入的数,即使本身就是回文数,也得进行一次逆置相加,判断的是相加后的数是否是回文数,而非输入的数2. 三个函数,exchange_sum():将数逆置并且相加if_equal():判断两个数组(逆置前,逆置后,是否相同,即是否是回文数)if_not_hw():判断是否是回文数,不是则返回true,继续循环exchange_sum()函数,是则返回false结束循环。改进方法:
2026-02-02 23:53:50
666
原创 day13:树、最大与最小、环
1. 循环输入马路长度以及地铁站区间,定义一个长度为l+2的树数组存储树的数量(理由:①为了方便与输入的路段号对齐,数组[0]点不使用,②路长度为l时一共有l+1颗树)2. 初始化数组的值为1,表示有树3. 遍历从路段a到b之间,将树为1的改为0,最后count记录数为0的数量。
2026-01-31 23:59:41
615
原创 day12:奇妙的数字、整除的尾数、黑色星期五、计算机英语翻译
1. 遇到需要将数字逐位相加的问题,可以使用int转化为string类型(sstream库)巧妙化解(推荐)
2026-01-30 23:55:08
544
原创 day9:阶乘最后的非0位、算菜价、水果价格、计算机英语翻译
N的阶乘写作N!表示小于等于N的所有正整数的乘积。阶乘会很快的变大,如13!就必须用32位整数类型来存储,70!即使用浮点数也存不下了。你的任务是找到阶乘最后面的非零位。举个例子,5!=1*2*3*4*5=120所以5!的最后面的非零位是2,7!=1*2*3*4*5*6*7=5040,所以最后面的非零位是4。个人总结1. 此题与前面的阶乘最后的0位题目遥相呼应,虽然处理方式有些不同,但是仍然有联系。
2026-01-27 23:41:32
921
原创 day8:汽水瓶、整除的尾数、整除的尾数、英语翻译
1. 依据题意,三空瓶换一新瓶。先由已有空瓶计新瓶,新瓶数:空瓶/3,空瓶数:原空瓶%3+上新瓶数。循环直至空瓶数小于3;2. 但是还没结束,空瓶小于3之后我又判断了一次空瓶是否为2,因为为2可以借一瓶还3空瓶,即为2直接原来基础上++,最后输出count。
2026-01-26 23:21:13
637
原创 day7:数字串处理、公式求解、累加式
刚开始看到这道题刷刷写完了结果测试不通过,才发现题干明确指示:连续重复1. 满足连续重复,需要进行前后数对比,不通过则重置count,然后与最大max_count进行比对,若符合条件则更新最大出现次数的值以及最大次数。
2026-01-25 22:18:12
768
原创 day6:奇妙的比值、T的倍数N、三角形
1. 数和因子是整型数,而比值可能是小数,因此此题有一个关键就是类型转化。两个int类型的数相除得到的也是int类型没有小数,需要用double()函数,将int类型的数转化为浮点数才能够进行计算。
2026-01-24 23:19:23
487
原创 day5:求阶乘结果0的个数、怪数、abc数字
1. n阶乘的因子就是n,n-1,.....,1,其中素数因子且其中含5的个数既该素数因子/5的多少。可以直接累加n /= 5的结果直至为0。2. 此题难度降低了,题干内容最为关键。即在乘积中,末尾有多少个0,主要看各乘数的素数因子中有多少个2和5。
2026-01-23 22:37:52
263
原创 day4:时间相加、成绩转换、求第几天
1. 两个时分秒相加后的新时分秒,不妨先将两个时分秒分别相加,①先进位,②再本位:新分是原分+秒/60,新秒是原秒%60,小时同理。
2026-01-22 22:09:05
317
原创 day3:解二次方程、门票价格计算、星期几问题
1. 求根公式 x = -b ± sqrt(dta);2. #incldue<cmath>库中的sqrt()函数用于求目标数的正根,abs()可用于求绝对值,最常用的两个,后续再补充double dta;return 0;
2026-01-21 21:29:24
245
原创 c++中各种库函数的大全(个人刷题补充版)
③ 对于一些需要动态输入的数组更加方便!直接使用push_back动态扩容(向最后一个位置添加n),通过size()函数获取大小。引入字符串流头文件:用于整数和字符串的转换(替代C++11的to_string)② vector不可以直接传数组,需要获取底层数组地址。常用到其中的reverse()函数,来获取逆序的字符串。引入字符串头文件,用于处理字符串拼接、转换等操作。例如:vector<int> num()的操作;① sqrt(x):返回x的正平方根。② abs(x):返回x的绝对值。
2026-01-20 22:32:55
276
原创 day2:一个月的天数、银行存款到期日、实数运算
1. 闰年与平年:闰年2月有29天、平年2月只有28天,其余一致。2. 月份天数:4,6,9,11一共30天,2月闰年29天(平年28天),其余月份31天。
2026-01-20 20:14:45
310
原创 day1:求长方形的面积和周长、数列和、解方程
1. 注意题解是否允许浮点数,此题未明确长宽是整数还是浮点数类型,默认只允许整数了,平时要多考虑这一点。如果是浮点数也要注意是否需要保留小数,导入iomanip库进行小数保留int a,b;int s,p;s = a*b;return 0;1. #incldue <iomanip> 这个库用于小数的保留,注意两点①如果有fixed,表示保留小数点后面的n位小数(默认四舍五入),②没有fixed,表示有效数字个数int a,b;double x;return 0;
2026-01-20 20:00:42
162
空空如也
竞赛问题-小鼠繁殖,求解(用c++)
2026-01-16
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅