CC++ & Algorithm

每日分享

每天一篇有深度的编程知识文章

125 篇文章

别让 `3.14159265358979` 毁了你的输出:聊聊 C++ 里控制小数位数的正确姿势

你有没有在超市结账时盯着收银屏幕发呆过? 商品总价是 12.00 元,你付了 20.00 元,屏幕上找零显示 8.00 元——一切都干净利落。但如果屏幕上突然跳出 7.999999999999999 呢?你大概会愣一下,然...

2026年9月15日18 阅读👍 1C++中的小数点后位数保留并输出

当计算机开口说话:一张藏在键盘背后的“数字暗号表”

你有没有想过一个问题:当你在键盘上敲下“Hello”这五个字母时,计算机到底“看到”了什么? 它看到的不是字母,而是一串二进制数字: 01001000 01100101 01101100 01101100 01101111 。计算机从头到...

2026年9月14日10 阅读👍 0计算机的“字母表” —— ASCII编码

当数字开始排队跨步:重新理解 C++ 位移运算的底层逻辑

先抛一个结论: 位移运算不是"乘除法的快捷方式",它是直接操作二进制位的底层指令。 把它当作乘除法的替代品来学,你会踩坑;把它当作"对二进制位排布的直接操控"来理解,很多看似奇怪的题目会变得理所当然。 我见过太多学生把 << 和...

2026年9月13日15 阅读👍 0C++左移 << 和右移 >>

贪心算法:当“短视”成为一种智慧

你可能听过这样的说法:贪心算法目光短浅,只看眼前利益。但恰恰是这种“短视”,在特定问题里能稳定地给出全局最优解。这不矛盾吗? 我先亮出观点: 贪心不是瞎选,它是在有数学结构保证的前提下,做出当前最有利的决策。 今天我们就用两个经典问...

2026年9月12日13 阅读👍 0贪心典型应用:活动选择与背包

你的程序是个背包客:聊聊空间复杂度这回事

你有没有在机场见过那种被拦下来的旅客?值机柜台前,工作人员指着他的登机箱说:“先生,这个必须托运,客舱放不下。”箱子本身不重,就是太大了。 程序运行时也会遇到同样的尴尬。内存就是那个有限的客舱,你的代码就是那个箱子。有时候算法跑着跑着突然...

2026年9月11日19 阅读👍 0空间复杂度:程序占多少内存?

当数据结构学会“排队”和“套娃”:一次讲透结构体数组与嵌套

你有没有想过,为什么快递站的货架从来不会把包裹一个个平铺在地上,而是分层分格地摆放? 答案很简单: 当同类物品多到一定程度,散放就是灾难,必须让它们排好队、归好类。 数据也一样。当你需要处理 40 个学生、100 本书、上千条订单记...

2026年9月10日15 阅读👍 0结构体也能排队和套娃:结构体数组与嵌套

元组和集合:Python 里最"拧巴"的两个数据类型

你有没有过这种时刻:明明只是想让数据别被改,结果代码跑着跑着,某个变量不知道被谁偷偷动了,bug 藏在几百行代码里,找了半天才定位到——原来是列表被某个函数顺手改了一个元素。 如果你经历过这种痛,那你一定会爱上元组。 先聊元组:那...

2026年9月9日11 阅读👍 0Python元组 tuple 和集合 set

别只会 `range(10)`:Python 循环的“变速器”与“座位表”

你有没有过这种经历?写循环的时候,心里想的是“从 1 数到 10”,可手指一敲就是 range(1, 10) ,结果 10 死活不出现。或者你想倒着遍历一个列表,却写了个 range(len(lst), 0) ,然后盯着空白的输出发呆。...

2026年9月8日15 阅读👍 1Python for 循环进阶

一个分号差点毁了整个循环:那些让人抓狂的C++陷阱

你有没有想过,为什么同样的代码,别人跑出来是55,你跑出来却是11?答案可能就藏在一个不起眼的分号里。 昨天有个学生兴冲冲地跑来告诉我,他写了一个"完美"的1到10累加程序。代码看起来确实无懈可击: int sum = 0; 初始化没问...

2026年9月7日16 阅读👍 2循环综合应用实例

你还在用“聪明办法”解鸡兔同笼?有时候“笨”才是真智慧

你有没有过这种时刻——明明一道题想破了脑袋要找最优解,结果旁边一个人慢悠悠地说:“直接全部试一遍不就行了?” 然后你愣住了,对啊,为什么不呢? 在编程的世界里,这种“全部试一遍”的策略有个正式的名字: 枚举 。很多初学者对它嗤之以鼻...

2026年9月6日14 阅读👍 1C++枚举算法

为什么你的程序会“卡死”?——给初学者的for循环避坑指南

你有没有遇到过这种情况:信心满满地写完一个循环,运行程序,结果屏幕像被施了定身术一样,光标闪烁却毫无反应,最后只能无奈地强制关闭窗口? 别急着怀疑电脑坏了。十有八九,是你写出了一个“死循环”——一个永远也跳不出来的循环。而这一切的源头,往...

2026年9月5日14 阅读👍 0C++ for 循环基础

递归:那面照向自己的镜子,为什么会让无数程序员又爱又恨?

想象一下这个场景:你站在两面相对的镜子中间,镜子里是无限延伸的影像,一层套着一层,永远看不到尽头。大多数人第一次看到这一幕会觉得神奇,但如果我告诉你,这段无限循环的影像,就是程序世界里一个强大到令人战栗的思维工具——递归——你能信吗? 更...

2026年9月4日17 阅读👍 0C++递归的基本原理

让电脑开口说话:C++里那个总被你忽视的“小喇叭”

你有没有想过一个问题——当你双击运行一个程序,屏幕上那些文字究竟是怎么“蹦”出来的?是程序自己长了嘴,还是操作系统在背后帮你念出来? 都不是。真相是,你写下的每一行输出代码,都在命令电脑的某个“器官”替你传话。在C++的世界里,这个器官叫...

2026年9月3日14 阅读👍 1C++标准输出 cout

贪心算法:为什么"每次都选最好的"有时候会害了你?

你有没有在食堂打饭时,精准地站到最短的队伍后面,结果旁边那条队的大妈一个人打了六份饭? 那一刻你肯定在心里骂:这破算法,怎么不灵了? 别急,你不是一个人。计算机科学里最"短视"的策略——贪心算法,也经常面临这种尴尬。 贪心:一个...

2026年9月2日18 阅读👍 3贪心算法思想:每次选最好的

为什么 `~5` 是 -6?——从电灯开关到补码的奇妙旅程

你有没有想过,一个简单的“取反”操作,为什么在 Python 里会给你一个看起来毫不相干的负数? ~5 的结果是 -6 ,而不是你直觉中的“某个很大的数”。如果你第一次见到这个结果时一脸懵,恭喜你,你正在触碰计算机最底层、最优雅的秘...

2026年9月1日13 阅读👍 1二进制与计算机