可移植 printf 實現:精簡版 sprintf 與 printf 源碼解析
簡介 這是一個針對嵌入式系統設計的精簡 printf/sprintf 實現,不支援浮點數與有號數值,但代碼緊湊、移植性強,適合資源受限的單片機環境。原始碼來自
HDU 4710 Balls Rearrangement:球體重新排列問題的高效解法
問題描述 Bob 擁有 N 顆球(編號 0 到 N-1)和 A 個舊盒子(編號 0 到 A-1)。他按照規則 x = a mod A 將球 x 放入盒子 a。後
HDU 4708 Rotation Lock Puzzle:矩陣旋轉求對角線最大和與最小步數
題目大意 給定一個 n×n 奇數階方陣(3 ≤ n ≤ 9),其中心固定,其餘元素按同心層分佈。每一層的元素可繞中心順時針或逆時針旋轉。目標:通過旋轉使主對角線
C++ 庫開發避坑指南:inline 關鍵字解決 hpp 多重定義錯誤
問題背景 在 C++ 專案中,若直接在頭文件(.hpp)中定義函數體(而非僅聲明),並在多個 .cpp 文件中 #include 該頭文件,鏈接階段會報 mul
HDU 4712 Hamming Distance:二進制字串最小異或值的兩種解法詳解
題目大意 給定 n 個長度為 20 位的 0、1 二進制字串,求任意兩兩字串進行異或運算後,結果中 1 的個數的最小值。 解題思路分析 這道題目主要有兩種解法
iOS 聊天界面單行與多行圖文混排佈局算法
聊天應用圖文混排:單行/多行佈局算法實現 實現類似微信的聊天氣泡佈局:支持文字、圖片(本地/遠程、靜態/動態)混排。單行模式水平排列;多行模式自動換行、寬度自適
HDU 4041 Eliminate Witches:樹的先序遍歷模擬與路徑記錄
HDU 4041 Eliminate Witches:括號表示樹的遍歷還原 輸入字符串表示樹結構:`name(child1,child2,...)`。模擬魔法少
HDU 4708 Rotation Lock Puzzle:矩陣環狀旋轉最大化對角線和
問題描述 奇數階方陣 (3 ≤ n ≤ 9),每層同心環可獨立順/逆時針旋轉。求主對角線 + 副對角線元素和的最大值,及達到該最大值的最小總旋轉步數(中心元素只
UVA 11137 Ingenuous Cubrency:完全背包求立方體組合數
問題描述 有 21 種立方體,邊長 1~21,體積分別為 i³。給定體積 V (≤ 10000),求用這些立方體組合成體積 V 的方案數(每種無限供應)。 完
POJ 1637 Sightseeing tour:混合圖歐拉回路轉最大流判定
問題描述 給定混合圖(有向邊 + 無向邊),判斷是否存在歐拉回路(遍歷每條邊恰好一次並回到起點)。 判定條件轉化 有向圖:每點入度 = 出度; 無向圖:每點
Windows BMP 圖像上繪製文字:GDI 加載、繪製、保存完整流程
整體流程 讀取 BMP 文件:解析文件頭、信息頭、像素數據; 創建 DIB Section(設備無關位圖),獲取像素指針; 建立內存 DC,選入位圖; 在 D
HDU 4715 Difference Between Primes:線性篩預計算 + 查找最小素數對
問題描述 給定偶數 x (|x| ≤ 1e6),找兩個素數 a, b 使 a - b = x。若多解,輸出 a 最小的(即 b 最小的)。無解輸出 FAIL。測
C++ 編譯鏈接全流程深度解析:從源文件到可執行文件
核心概念 編譯:預處理 → 編譯 → 匯編,生成目標文件 (.obj/.o),含機器碼、符號表; 編譯單元:每個 .cpp 文件獨立編譯,互不干擾; 鏈接:合
字符串反轉算法:整體反轉與單詞級反轉的 C 實現
1. 整體反轉 雙指針頭尾交換,直到相遇。 void reverse_all(char *s) { char *l = s, *r = s + strl
C/C++ 中 static 關鍵字的三大用法與區別全解析
1. 局部靜態變量 存儲在靜態存儲區(非棧),程序全生命週期存在; 作用域僅限於定義它的函數/塊; 首次執行到定義處初始化,且只初始化一次; 未顯式初始化則自
選擇排序與堆排序:原理、複雜度與 C++ 實現詳解
直接選擇排序 基本思想 第 i 趟:在未排序區間 [i, n-1] 中找最小元素,與位置 i 交換。共 n-1 趟。 特性 時間複雜度:O(n²)(比較次數