- 博客(213)
- 收藏
- 关注
原创 0和1的个数
题目要求统计给定整数的二进制表示中0和1的个数。参考代码通过将整数转换为二进制形式,计算其中1的个数,然后用32位整数的总位数减去1的个数得到0的个数。对于输入15(二进制1111),程序正确输出count0=28(32-4)和count1=4。该算法时间复杂度为O(log n),适用于32位无符号整数处理。
2026-01-12 16:51:27
31
原创 二进制数二进制数
摘要: 题目要求将给定的无符号整数转换为二进制形式,并去除前导零。输入为0到10^8之间的整数,输出对应的二进制字符串。参考代码使用循环除2取余法,将十进制数逐位转换为二进制位并存储数组,最后逆序输出结果。例如输入23,输出10111。算法通过不断除以2获取余数实现进制转换,简单高效地解决了问题。
2026-01-12 16:43:43
151
原创 促销计算促销计算
题目要求根据购物金额计算优惠折扣和实际支付金额。程序实现了一个百货公司的促销方案:1000元以下无折扣,1000-2000元打9.5折,2000-3000元打9折,3000-5000元打8.5折,5000元以上打8折。输入购物金额后,程序输出对应的折扣率和优惠后的支付金额。示例输入输出展示了不同金额区间的计算结果。
2026-01-12 16:36:33
134
原创 01序列01序列
题目要求按从小到大的顺序输出所有6位01串(从000000到111111共64种组合)。参考代码通过6层嵌套循环,每层循环对应一位二进制数字(0或1),依次生成并输出所有可能的6位01串。该方法简单直接地实现了从小到大的顺序输出要求,无需额外排序处理。输出结果将包含64行,每行一个6位01串,从000000开始到111111结束。
2026-01-11 23:29:51
238
原创 首字母大写
题目要求将字符串中每个单词的首字母大写处理。处理规则是:单词首字母若非大写则转换为大写,单词间通过空格、制表符、回车符或换行符分隔。参考代码使用C++实现,首先检查字符串首字符,然后遍历字符串,遇到分隔符后的字符即视为新单词首字母进行转换。例如输入"if so..."会输出"If So..."。代码通过getline读取输入,处理多组测试数据,确保每个单词首字母大写后输出结果。
2026-01-11 23:25:05
180
原创 利润提成利润提成
本文介绍了一个企业奖金计算程序,根据利润不同区间采用阶梯式提成比例。利润≤10万元提10%,10-20万元部分提7.5%,20-40万元部分提5%,40-60万元部分提3%,60-100万元部分提1.5%,超过100万元部分提1%。程序通过if-else条件判断计算各区间应得奖金并累加,最后输出总奖金数。输入当月利润(整数),程序即可返回对应的奖金数额。
2026-01-11 23:14:56
544
原创 判断素数判断素数
题目要求判断输入的整数是否为素数,若是则输出该数,否则输出大于该数的第一个素数。参考代码实现思路:预先生成20000以内的素数数组,然后遍历数组找到第一个大于等于输入数的素数输出。算法通过遍历2到n-1判断是否能整除来验证素数,时间复杂度较高但满足题目n≤10000的限制。输入14时,程序输出17,符合预期结果。
2026-01-11 22:56:35
303
原创 删除字符串2
题目要求删除字符串中所有不区分大小写的"gzu"子串。参考代码通过遍历字符串,检查每个字符及其后两个字符是否组成"gzu"的任意大小写组合,若匹配则跳过这三个字符,否则将当前字符加入结果。例如输入"GzzGzukkgzUuu"时,会删除"Gzu"和"gzU",输出"Gzzkkuu"。该方法时间复杂度为O(n),能高效处理长度不超过100的输入字符串。
2026-01-10 23:01:07
238
原创 整除整除整除
题目要求输出100到1000之间能同时被5和6整除的数,每行10个数字,数字间用空格分隔且行末无空格。参考代码通过循环遍历100-999的数字,使用计数器cnt控制每行输出10个数,满足条件时输出数字并在非行末时添加空格,满10个则换行并重置计数器。该程序无需输入,直接输出符合条件的数字序列。
2026-01-10 22:50:59
185
原创 日期日期日期
本文实现了一个日期转星期几的程序。给定2012年4月12日(星期四)作为基准日,输入后续任意日期(月/日),程序计算该日期与基准日的天数差,通过模运算确定星期几并输出。核心思路是:1)使用数组存储各月份天数;2)计算目标日期与基准日的天数差;3)利用天数差和基准日星期数计算目标日星期数。示例输入5月20日,程序正确输出"Sunday"。该算法时间复杂度为O(n),适用于日期计算场景。
2026-01-10 22:45:19
203
原创 日期日期日期
摘要:本文提供了一个C++程序,用于计算2012年4月12日(星期四)之后任意日期对应的星期几。程序通过输入月份和日期,计算与基准日期的天数差,再利用模运算确定星期几。代码使用了月份天数数组和星期字符串数组,输出结果如样例输入"5 20"对应输出"Sunday"。该方法通过日期差值计算有效解决了星期几的推算问题。
2026-01-10 22:37:51
209
原创 加密算法加密算法
本文实现了一个简单的字母加密程序。程序将输入字符串中的每个字母替换为其后第三个字母(A->D,B->E等),若超过Z/z则循环回A/a。非字母字符保持不变。通过ASCII码值计算实现加密,处理边界情况时采用模26运算。示例输入"I love 007"加密后输出"L oryh 007"。程序使用getline读取整行输入,逐个字符处理并输出结果,时间复杂度为O(n),适用于长度小于100的字符串。
2026-01-10 22:23:31
224
原创 反序数反序数
题目要求找出所有满足条件的四位数N,其9倍等于N的反序数。参考代码通过遍历1000到9999/9范围内的数,计算每个数的9倍,然后与原数的反序数比较,若相等则输出该数。例如,若N=1089,其9倍9801正好是1089的反序数。程序最终输出符合条件的四位数结果。
2026-01-10 22:06:59
143
原创 字符移动字符移动
题目要求将输入字符串中的数字字符移动到非数字字符之后,同时保持原有顺序。参考代码通过遍历字符串,将数字和非数字字符分别存入两个数组,然后先输出非数字字符再输出数字字符。例如输入"ab4f35gr#a6",输出为"abfgr#a4356"。算法时间复杂度为O(n),空间复杂度为O(n),适用于长度小于100的字符串。
2026-01-10 21:50:52
162
原创 输入n个数进行排序,要求先按奇偶后按从小到大的顺序排序
本文描述了一个排序算法题目,要求将输入的n个整数先按奇偶后按大小排序。题目给出了输入输出格式和样例,其中输入第一行为整数个数n,第二行为n个整数;输出为排序后的结果,奇数在前、偶数在后,各自按升序排列。参考代码使用C++实现,首先对数组整体排序,然后分离奇偶数到两个数组,最后先输出奇数数组再输出偶数数组。该解法时间复杂度主要由排序步骤决定,为O(n log n)。
2026-01-10 21:41:40
345
原创 求1到n的和
摘要:题目要求计算1到n的整数和,其中n≤100。参考代码使用高斯求和公式(n+1)*n/2直接计算结果,避免了循环累加。输入输出样例展示了当n=5时,程序正确输出15的结果。该解法时间复杂度为O(1),空间复杂度为O(1),效率最优。
2026-01-10 21:29:29
249
原创 字符串翻转
题目要求将一个输入的字符串反序输出。输入字符串长度限制在100以内,需通过标准输入接收字符串,并使用reverse函数将其反转后输出。参考代码使用C++的algorithm库中的reverse函数实现字符串反转,简洁高效。例如输入"Guiyang"将输出"gnayiuG"。
2026-01-06 21:14:09
441
原创 A+B问题
题目要求计算两个整数A和B的和。给定输入范围为-1,000,000,000到1,000,000,000,需要使用长整型(long long)存储数据以避免溢出。代码示例展示了如何用C++实现该功能:通过cin读取输入,直接计算并输出A+B的结果。
2026-01-02 20:08:52
185
原创 977. 有序数组的平方 C++
提供的双指针法适用于非递减数组,因为它依赖于绝对值较大的数在数组的两端这一特性。如果数组不是非递减的,我们需要使用不同的方法来确保结果数组是有序的。
2024-12-09 19:15:33
461
原创 27. 移除元素 C++
定义在 头文件中。它的目的是移除容器中所有等于给定值的元素,但它并不实际从容器中删除这些元素,而是将它们“移动”到容器的末尾,并返回一个指向新逻辑末尾的迭代器。这个新逻辑末尾是第一个应该被移除的元素的位置。erase 是 std::vector(以及其他容器)的一个成员函数,用于从容器中删除元素或一系列元素。删除postion处的一个字符(position是一个string类型的迭代器)删除从first到last之间的字符(first和last都是迭代器)
2024-12-03 14:09:07
1154
原创 704. 二分查找 C++
cin.getline() 通常用于读取字符串,但它不是用来读取单个数据项的好选择,因为它会将整行数据作为一个字符串读取。getline() 是一个全局函数,用于从 istream 对象(如 cin)读取一行数据,直到遇到换行符。cin.getline() 是 cin 的成员函数,用于从标准输入流读取一行数据,直到遇到换行符。getline() 是读取一行数据的标准方式,特别是当你需要处理包含空格的字符串时。它会读取换行符之前的整行数据,包括空格,并将其存储在提供的字符数组中。
2024-12-02 18:13:46
750
原创 C++ 131. 分割回文串
给你一个字符串 s,请你将 s 分割成一些子串,使每个子串都是。输出:[[“a”,“a”,“b”],[“aa”,“b”]]返回 s 所有可能的分割方案。输入:s = “aab”s 仅由小写英文字母组成。输入:s = “a”输出:[[“a”]]
2024-05-27 21:44:55
536
原创 C++ 40. 组合总和 II
给定一个候选人编号的集合 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。输入: candidates = [10,1,2,7,6,1,5], target = 8,输入: candidates = [2,5,2,1,2], target = 5,candidates 中的每个数字在每个组合中只能使用 一次。注意:解集不能包含重复的组合。
2024-05-27 21:11:41
365
原创 C++ 17. 电话号码的字母组合
输出:[“ad”,“ae”,“af”,“bd”,“be”,“bf”,“cd”,“ce”,“cf”]给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。给出数字到字母的映射(与电话按键相同)。注意 1 不对应任何字母。输入:digits = “23”输出:[“a”,“b”,“c”]输入:digits = “2”输入:digits = “”
2024-05-20 21:27:06
268
原创 C++ 55. 跳跃游戏
给你一个非负整数数组 nums ,你最初位于数组的 第一个下标。数组中的每个元素代表你在该位置可以跳跃的最大长度。解释:无论怎样,总会到达下标为 3 的位置。但该下标的最大跳跃长度是 0 , 所以永远不可能到达最后一个下标。解释:可以先跳 1 步,从下标 0 到达下标 1, 然后再从下标 1 跳 3 步到达最后一个下标。判断你是否能够到达最后一个下标,如果可以,返回 true;否则,返回 false。输入:nums = [2,3,1,1,4]输入:nums = [3,2,1,0,4]
2024-05-17 15:28:01
357
原创 C++ 122. 买卖股票的最佳时机 II
解释:在第 1 天(股票价格 = 1)的时候买入,在第 5 天 (股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5 - 1 = 4。解释:在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5 - 1 = 4。随后,在第 4 天(股票价格 = 3)的时候买入,在第 5 天(股票价格 = 6)的时候卖出, 这笔交易所能获得利润 = 6 - 3 = 3。输入:prices = [7,1,5,3,6,4]
2024-05-17 15:15:13
404
原创 C++ 53. 最大子数组和
给你一个整数数组 nums ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。输入:nums = [-2,1,-3,4,-1,2,1,-5,4]解释:连续子数组 [4,-1,2,1] 的和最大,为 6。输入:nums = [5,4,-1,7,8]输入:nums = [1]是数组中的一个连续部分。
2024-05-17 15:05:42
499
原创 C++376. 摆动序列
相反,[1, 4, 7, 2, 5] 和 [1, 7, 4, 5, 5] 不是摆动序列,第一个序列是因为它的前两个差值都是正数,第二个序列是因为它的最后一个差值为零。其中一个是 [1, 17, 10, 13, 10, 16, 8] ,各元素之间的差值为 (16, -7, 3, -3, 6, -8)。例如, [1, 7, 4, 9, 2, 5] 是一个 摆动序列 ,因为差值 (6, -3, 5, -7, 3) 是正负交替出现的。输入:nums = [1,17,5,10,13,15,10,5,16,8]
2024-05-17 14:47:41
504
1
原创 C++ 77. 组合
给定两个整数 n 和 k,返回范围 [1, n] 中所有可能的 k 个数的组合。你可以按 任何顺序 返回答案。输入:n = 4, k = 2。输入:n = 1, k = 1。
2024-05-13 20:57:32
252
原创 C++ 455. 分发饼干
虽然你有两块小饼干,由于他们的尺寸都是1,你只能让胃口值是1的孩子满足。你有三个孩子和两块小饼干,3个孩子的胃口值分别是:1,2,3。你有两个孩子和三块小饼干,2个孩子的胃口值分别是1,2。输入: g = [1,2,3], s = [1,1]输入: g = [1,2], s = [1,2,3]你拥有的饼干数量和尺寸都足以让所有孩子满足。
2024-05-11 18:33:36
602
原创 C++ LCR 090. 打家劫舍 II
一个专业的小偷,计划偷窃一个环形街道上沿街的房屋,每间房内都藏有一定的现金。这个地方所有的房屋都 围成一圈 ,这意味着第一个房屋和最后一个房屋是紧挨着的。同时,相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组 nums ,请计算 在不触动警报装置的情况下 ,今晚能够偷窃到的最高金额。
2024-05-10 10:53:40
470
原创 C++ LCR 089. 打家劫舍
一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响小偷偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。给定一个代表每个房屋存放金额的非负整数数组 nums ,请计算 不触动警报装置的情况下 ,一夜之内能够偷窃到的最高金额。
2024-05-10 10:26:54
388
原创 C++ 62. 不同路径
机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。一个机器人位于一个 m x n 网格的左上角 (起始点在下图中标记为 “Start” )。问总共有多少条不同的路径?
2024-05-09 16:50:25
676
原创 C++ 509. 斐波那契数
解释:F(2) = F(1) + F(0) = 1 + 0 = 1。解释:F(3) = F(2) + F(1) = 1 + 1 = 2。解释:F(4) = F(3) + F(2) = 2 + 1 = 3。
2024-05-09 15:38:13
367
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅