第 13 屆藍橋杯 C++ 青少組省賽中 / 高級組 2022 年真題

一、選擇題
第 1 題

題目:已知char a; float b; double c;,執行語句c = a + b + c;后變量c的類型是( )。
A. char B. float C. double D. int

正確答案:C
答案解析
在 C++ 中,表達式運算會進行類型提升

  1. a(char)與b(float)相加時,char 提升為 float,結果為 float。
  2. 該 float 結果再與c(double)相加時,float 提升為 double,最終結果類型為 double。
    因此,變量c的類型仍為 double。

講解方法和教案

  • 教學目標:理解 C++ 中的類型轉換規則(自動提升)。
  • 重點:不同類型運算時,低精度類型向高精度類型提升(char→int→float→double)。
  • 教學步驟
    1. 舉例說明類型提升:如int + float結果為 float,float + double結果為 double。
    2. 強調表達式結果類型由參與運算的最高精度類型決定。
第 2 題

題目:以下對main函數描述正確的是( )。
A.?main函數必須寫在所有函數的前面
B.?main函數必須寫在所有函數的后面
C.?main函數可以寫在任何位置,但不能放到其他函數里
D.?main函數必須寫在固定位置

正確答案:C
答案解析
C++ 中,main函數是程序的入口,但沒有規定其必須位于代碼的特定位置

  • 它可以寫在其他函數之前或之后,但不能被其他函數包含(即不能在某個函數內部定義main)。
    選項 A、B、D 均錯誤,C 正確。

講解方法和教案

  • 教學目標:明確main函數的特殊性和位置要求。
  • 重點main函數是程序執行的起點,獨立定義,不被其他函數包含。
  • 教學步驟
    1. 展示不同位置定義main函數的合法代碼(如main在開頭、中間、結尾)。
    2. 強調錯誤寫法:在另一個函數內部定義main會導致編譯錯誤。
第 3 題

題目:二進制數1101111轉換為十六進制是( )。
A. 157 B. 111 C. 6f D. 3f

正確答案:C
答案解析
二進制轉十六進制需從右到左每 4 位分組(不足補前導 0):

  • 1101111?→ 補前導 0 為0110 1111
  • 0110對應十六進制61111對應F(小寫為f),故結果為6f(選項 C)。

講解方法和教案

  • 教學目標:掌握二進制與十六進制的轉換方法(4 位分組法)。
  • 重點:分組時從右往左,不足補 0;十六進制字符大小寫不影響值(但題目選項需嚴格匹配)。
  • 教學步驟
    1. 演示分組過程,計算每組對應的十六進制值。
    2. 練習:將10101010轉換為十六進制(A10→錯誤,正確為 AA)。
第 4 題

題目:下列函數中哪一個不能重載( )。
A. 構造函數 B. 析構函數 C. 成員函數 D. 非成員函數

正確答案:B
答案解析
函數重載要求函數名相同,參數列表不同

  • 析構函數的名稱固定為~類名(),且沒有參數,無法通過參數列表區分,因此不能重載。
  • 構造函數可以重載(不同參數列表),成員函數和非成員函數也可以重載。

講解方法和教案

  • 教學目標:理解函數重載的條件,掌握析構函數的特性。
  • 重點:析構函數的名稱固定,無參數,不能重載。
  • 教學步驟
    1. 對比構造函數和析構函數的定義形式。
    2. 解釋重載的規則:名稱相同,參數不同;析構函數不滿足條件。
第 5 題

題目:下列指針的用法中哪一個不正確( )。
A.?int i; int *p = &i;
B.?int i; int *p; i = *p;
C.?int *p; p = 0;
D.?int i = 5; int *p; p = &i;

正確答案:B
答案解析

  • 選項 A:正確,指針p指向變量i的地址。
  • 選項 B:錯誤,指針p未初始化(未指向有效地址),解引用*p會導致未定義行為(野指針)。
  • 選項 C:正確,p = 0等價于p = nullptr,表示空指針。
  • 選項 D:正確,指針p指向變量i的地址。

講解方法和教案

  • 教學目標:掌握指針的正確初始化和使用,避免野指針。
  • 重點:解引用未初始化的指針是危險操作,可能導致程序崩潰。
  • 教學步驟
    1. 演示合法的指針初始化(指向變量、空指針)。
    2. 強調野指針的危害,通過示例說明錯誤用法(如選項 B)。
二、編程題
第 6 題:比較大小

題目描述:輸入兩個正整數 N 和 M(N≠M),輸出較大的數。
樣例輸入:145 100 →?樣例輸出:145

正確答案代碼

cpp

#include <iostream>
using namespace std;int main() {int n, m;cin >> n >> m;cout << (n > m ? n : m);return 0;
}

答案解析
直接使用條件運算符(n > m ? n : m)比較兩個數,返回較大者。輸入保證 N≠M,無需處理相等情況。

講解方法和教案

  • 教學目標:掌握基本條件判斷,使用條件運算符簡化代碼。
  • 重點:條件表達式的語法(條件 ? 結果1 : 結果2)
  • 教學步驟
    1. 分析問題:僅需一次比較,輸出較大值。
    2. 代碼實現:演示條件運算符的用法,對比if-else語句的等價寫法。
第 7 題:分解整數

分解整數
題目描述:
給定一個正整數N,然后將N分解成3個正整數之和。計算出共有多少種符合要求的分解方法。
要求:
1)分解的3個正整數各不相同;
2)分解的3個正整數中都不含數字3和7。
如:N為8,可分解為(1,1,6)、(1,2,5)、(1,3,4)、(2,2,4)、(2,3,3),其中滿足要
求的分解方法有1種,為(1,2,5)。
輸入描述:
輸入一個正整數N(5<N<501),表示需要分解的正整數
輸出描述:
輸出一個整數,表示共有多少種符合要求的分解方法
樣例輸入:

8
樣例輸出:
1

題目描述:將正整數 N 分解為 3 個不同的正整數之和,要求每個數不含數字 3 和 7,求分解方法數(順序不同視為同一分解,如 (1,2,5) 和 (2,1,5) 視為同一種)。
樣例輸入:8 →?樣例輸出:1(僅 (1,2,5) 符合條件)

正確答案思路

  1. 三重循環枚舉三個數 a、b、c,滿足a < b < c(避免重復計數),且a + b + c = N
  2. 檢查每個數是否不含數字 3 和 7(逐位判斷)。

代碼實現

cpp

#include <iostream>
using namespace std;bool has_forbidden(int x) {while (x > 0) {int digit = x % 10;if (digit == 3 || digit == 7) return true;x /= 10;}return false;
}int main() {int n, count = 0;cin >> n;// 保證a < b < c,避免重復for (int a = 1; a < n - 2; a++) {if (has_forbidden(a)) continue;for (int b = a + 1; b < n - a - 1; b++) {if (has_forbidden(b)) continue;int c = n - a - b;if (c > b && !has_forbidden(c)) { // c必須大于b,且不含3、7count++;}}}cout << count;return 0;
}

答案解析

  • 去重:通過a < b < c確保每個分解僅計算一次。
  • 數字檢查:定義函數has_forbidden判斷數字是否包含 3 或 7。
  • 循環范圍:a 從 1 到 n-3,b 從 a+1 到 (n-a-1)/2,減少無效循環。

講解方法和教案

  • 教學目標:掌握三重循環枚舉,條件過濾,去重技巧。
  • 重點
    • 如何避免重復分解(通過順序 a < b < c)。
    • 數字逐位檢查的方法(取余和整除)。
  • 教學步驟
    1. 分析樣例:N=8 時,合法分解需滿足 a+b+c=8,a<b<c,且每個數不含 3、7。
    2. 算法設計:枚舉 a 和 b,計算 c=N-a-b,檢查 c 是否大于 b 且合法。
    3. 代碼實現:講解has_forbidden函數的邏輯,循環范圍的優化。
第 8 題:組合

題目描述:已知 N 和 M 互質,求最大不能表示的糖果數量(即無法用 kN + mM 表示的最大正整數,k,m≥0)。
樣例輸入:3 5 →?樣例輸出:7(3*5 - 3 - 5 = 7)

正確答案思路
當 N 和 M 互質時,最大不能表示的數為?N*M - N - M(數論中的 “青蛙問題” 公式)。

代碼實現

cpp

#include <iostream>
using namespace std;int main() {int n, m;cin >> n >> m;cout << n * m - n - m;return 0;
}

答案解析
直接應用數論公式,無需枚舉。公式成立條件是 N 和 M 互質(題目已保證)。

講解方法和教案

  • 教學目標:理解互質數的性質,掌握 “青蛙問題” 公式。
  • 重點:公式的推導(可簡要說明:當 a 和 b 互質時,最大不能表示的數為 ab-a-b)。
  • 教學步驟
    1. 通過樣例解釋公式:3*5-3-5=7,驗證樣例輸入正確。
    2. 說明公式的適用條件:兩數互質。
    3. 代碼實現:直接計算并輸出結果。
第 9 題:最大值

題目描述:給定 N 張長方形彩紙,裁剪出 K 張大小相同的正方形,求最大邊長(邊長為整數),若無法裁剪則輸出 - 1。
樣例輸入
2 6
4 3
5 4 →?樣例輸出:2(每張彩紙分別可裁 (4/2)(3/2)=2 和 (5/2)(4/2)=4,共 6 張)

正確答案思路

  1. 二分法枚舉可能的邊長len(從 1 到最小的邊長),判斷是否能裁剪出至少 K 張正方形。
  2. 對每張彩紙,計算可裁剪的正方形數量:(w/len) * (h/len),總和≥K 則可行。

代碼實現

cpp

#include <iostream>
using namespace std;int n, k;
int papers[100][2]; // 存儲每張彩紙的w和hbool check(int len) {long long total = 0;for (int i = 0; i < n; i++) {int w = papers[i][0], h = papers[i][1];total += (w / len) * (h / len);if (total >= k) return true; // 提前終止}return total >= k;
}int main() {cin >> n >> k;int max_len = 0, min_len = 1;for (int i = 0; i < n; i++) {cin >> papers[i][0] >> papers[i][1];max_len = max(max_len, min(papers[i][0], papers[i][1])); // 最大可能邊長}int left = 1, right = max_len, ans = -1;while (left <= right) {int mid = (left + right) / 2;if (check(mid)) {ans = mid;left = mid + 1; // 嘗試更大的邊長} else {right = mid - 1;}}cout << ans;return 0;
}

答案解析

  • 二分法:從 1 到最大可能邊長(最小的彩紙邊長)搜索,每次判斷當前邊長是否可行。
  • 可行性函數 check:計算所有彩紙可裁剪的正方形總數,若≥K 則可行。
  • 邊界處理:若最大邊長為 0(不可能),或最終 ans 仍為 - 1(無解),輸出 - 1。

講解方法和教案

  • 教學目標:掌握二分法在最值問題中的應用,理解可行性判斷邏輯。
  • 重點
    • 二分法的區間定義和終止條件。
    • 如何計算單張彩紙可裁剪的正方形數量(w/len * h/len)。
  • 教學步驟
    1. 分析樣例:邊長 2 時,第一張彩紙 4x3 可裁 2x2 的正方形 2 個(4/2=2,3/2=1,21=2),第二張 5x4 可裁 2x2 的正方形 4 個(5/2=2,4/2=2,22=4),總和 6,符合條件。
    2. 算法設計:確定二分范圍,實現 check 函數。
    3. 代碼實現:講解二分法的循環邏輯,注意數據類型溢出(使用 long long)。
第 10 題:農作物

題目描述:統計農田中獨立的 “R” 區域數量(上下左右相連的 R 視為同一區域,雜草 X 分隔)。
樣例輸入
4 4
R R R X
R X R X
X X X R
R X X X →?樣例輸出:3

正確答案思路
使用 ** 深度優先搜索(DFS)廣度優先搜索(BFS)** 遍歷每個未訪問的 R 節點,標記已訪問,統計區域數。

代碼實現(DFS)

cpp

#include <iostream>
#include <cstring>
using namespace std;const int MAXN = 100;
char field[MAXN][MAXN];
bool visited[MAXN][MAXN];
int n, m;void dfs(int x, int y) {visited[x][y] = true;// 上下左右四個方向int dx[] = {-1, 1, 0, 0};int dy[] = {0, 0, -1, 1};for (int i = 0; i < 4; i++) {int nx = x + dx[i];int ny = y + dy[i];if (nx >= 0 && nx < n && ny >= 0 && ny < m && !visited[nx][ny] && field[nx][ny] == 'R') {dfs(nx, ny);}}
}int main() {cin >> n >> m;for (int i = 0; i < n; i++) {for (int j = 0; j < m; j++) {cin >> field[i][j];}}memset(visited, false, sizeof(visited));int count = 0;for (int i = 0; i < n; i++) {for (int j = 0; j < m; j++) {if (field[i][j] == 'R' && !visited[i][j]) {dfs(i, j);count++;}}}cout << count;return 0;
}

答案解析

  • 二維數組存儲農田visited數組標記是否訪問過。
  • DFS 遍歷:從每個未訪問的 R 節點出發,遞歸訪問上下左右相連的 R 節點,標記為已訪問。
  • 統計次數:每次啟動 DFS,區域數加 1。

講解方法和教案

  • 教學目標:掌握圖的遍歷算法(DFS/BFS),解決區域計數問題。
  • 重點
    • 二維網格的方向數組(上下左右)。
    • 邊界條件判斷(坐標是否越界)。
  • 教學步驟
    1. 分析樣例:通過畫圖展示三個獨立的 R 區域,說明相連的 R 如何被 DFS 遍歷。
    2. 算法設計:使用二維數組和訪問標記數組,遍歷每個單元格。
    3. 代碼實現:講解 DFS 的遞歸邏輯,對比 BFS 的隊列實現方式。
第 11 題:面積

題目描述:計算 N 個矩形的面積并集(重疊部分只算一次)。
樣例輸入
2
2 2 9 5
6 1 12 9 →?樣例輸出:60

正確答案思路

  1. 二維網格標記法:創建一個足夠大的二維數組(如 100x100),標記每個格子是否被至少一個矩形覆蓋。
  2. 遍歷所有矩形,將其覆蓋的格子標記為 1,最后統計所有標記為 1 的格子數量。

代碼實現

cpp

#include <iostream>
#include <cstring>
using namespace std;const int MAX_COORD = 100;
int grid[MAX_COORD + 1][MAX_COORD + 1]; // 坐標范圍0~100int main() {int n;cin >> n;memset(grid, 0, sizeof(grid));for (int i = 0; i < n; i++) {int x1, y1, x2, y2;cin >> x1 >> y1 >> x2 >> y2;// 確保x1 < x2,y1 < y2(題目中x1≠x2,y1≠y2,但可能順序顛倒)if (x1 > x2) swap(x1, x2);if (y1 > y2) swap(y1, y2);for (int x = x1; x < x2; x++) {for (int y = y1; y < y2; y++) {grid[x][y] = 1; // 標記為覆蓋}}}int area = 0;for (int x = 0; x <= MAX_COORD; x++) {for (int y = 0; y <= MAX_COORD; y++) {area += grid[x][y];}}cout << area;return 0;
}

答案解析

  • 坐標處理:確保 x1 < x2,y1 < y2(交換順序,避免無效循環)。
  • 網格標記:每個矩形覆蓋的區域(x1 到 x2-1,y1 到 y2-1,因為坐標是左閉右開)。
  • 面積統計:遍歷整個網格,累加所有標記為 1 的格子數。

講解方法和教案

  • 教學目標:掌握矩形面積并集的網格標記法,處理坐標范圍。
  • 重點
    • 矩形坐標的正確遍歷(左閉右開區間)。
    • 處理坐標顛倒的情況(如 x1 > x2 時交換)。
  • 教學步驟
    1. 分析樣例:兩個矩形的覆蓋區域,計算重疊部分的處理方式(只算一次)。
    2. 算法設計:使用二維數組模擬網格,標記每個格子是否被覆蓋。
    3. 代碼實現:講解坐標交換的邏輯,循環遍歷矩形的行和列。

總結

本次真題涵蓋 C++ 基礎語法、數學算法(數論、二分法)、圖論(DFS)、幾何(矩形面積)等知識點。教學時應注重:

  1. 選擇題:強化類型轉換、函數特性、指針安全等基礎概念。
  2. 編程題:引導學生從問題分析到算法設計,逐步實現,如分解整數的三重循環去重、組合問題的公式應用、面積問題的網格標記法。
  3. 算法思維:培養二分法、DFS/BFS 等常用算法的應用能力,通過樣例理解問題本質。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/78221.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/78221.shtml
英文地址,請注明出處:http://en.pswp.cn/web/78221.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

解決GoLand無法Debug的問題

文章目錄 解決GoLand無法Debug的問題問題描述解決方案方法一&#xff1a;安裝并替換Delve調試工具方法二&#xff1a;通過GoLand自動安裝方法三&#xff1a;配置自定義Delve路徑 驗證解決方案常見問題排查總結 解決GoLand無法Debug的問題 問題描述 在使用GoLand進行Go語言開發…

5.2刷題

P1064 [NOIP 2006 提高組] 金明的預算方案 背包&#xff0b;附屬品DP #include<bits/stdc.h> using namespace std; #define int long long int n, m, v, p, q; struct node{int id, v, s, f; }a[100]; int b[32010], dp[32010]; bool cmp(node a, node b){if(a.id b.…

輕舟系列FPGA加速卡:大模型分布式訓練中的高效協同者

在超大規模模型&#xff08;如千億級參數&#xff09;的分布式訓練中&#xff0c;計算、存儲與通信的協同優化是突破性能瓶頸的關鍵。綠算技術公司的輕舟系列FPGA加速卡憑借其低延遲、高能效和可編程特性&#xff0c;能夠成為分布式訓練架構中的異構加速節點。其在訓練集群中的…

序列數據(Sequential Data)??:按順序排列的動態信息載體

核心定義?? 序列數據是??按特定順序排列??的數據集合&#xff0c;其中元素的??位置或時間順序??蘊含關鍵信息。例如&#xff1a; ??時間序列??&#xff1a;股票價格、氣溫變化&#xff08;按時間戳排列&#xff09;。??文本??&#xff1a;句子中的詞語序列…

【單片機數碼管實現第一位開始走0~9,1s后第二位再開始亮】2022-5-2

緣由怎么讓單片機數碼管實現第一位開始走0~9,1s后第二位再開始亮? - 24小時必答區 #include "REG52.h" void sm7447(unsigned char mz, unsigned char w) {unsigned char Xd0;P2255;P2mz;P3w;while(Xd); } void main() {unsigned char jz0,zhi128;unsigned int Ys4…

InnoDB索引的原理

在鵝廠后端開發一面&#xff0c;我遇到了如題這樣一個比較寬泛的問題&#xff0c;當時可能只是背了相關概念&#xff0c;對于索引的了解不是很深刻。 最近&#xff0c;我花了很大的功夫去深入了解MySQL的索引。 下面是我的一些思考&#xff1a; 索引&#xff0c;對于InnoDB來說…

FormCalc 支持的編程語言和軟件

FormCalc 是一種專為 PDF 表單計算設計的腳本語言&#xff0c;主要應用于 Adobe 生態及 SAP 相關工具。以下是支持 FormCalc 的主要軟件和平臺&#xff1a; 1. Adobe LiveCycle Designer&#xff08;最佳支持&#xff09; 原生支持&#xff1a;FormCalc 是 LiveCycle Designe…

unity 為什么不切片 Sprite.rect 與Sprite.textureRect的值還不一樣

一。測試代碼&#xff1a; 二。發現Debug不一樣的原因 與解決方案&#xff1a; 下圖右邊所示&#xff1a; 網格類型默認為緊密 在 Unity 中&#xff0c;紋理導入時可能存在自動的偏移和裁剪設置。即便你沒有手動切片&#xff0c;Unity 可能會根據紋理的導入設置&#xff0c;對…

超預期!淘寶閃購提前開放全國全量,聯合餓了么扭轉外賣戰局

餓了么由守轉攻。 作者|景行 編輯|楊舟 淘寶餓了么&#xff0c;終于落子&#xff0c;“淘寶閃購”&#xff0c;橫空出世&#xff0c;僅僅2天&#xff0c;業務加速。 4月30日上午&#xff0c;當外賣戰場陷入沉寂時&#xff0c;淘寶宣布將即時零售業務“小時達”升級為“淘寶閃…

minio相關面試問題和參考答案

可以考慮以下幾個方面&#xff1a; MinIO概述與特性MinIO與其他對象存儲的比較MinIO的使用場景MinIO的API與SDKMinIO的安全性與權限管理MinIO的性能優化 以下是一些相關的面試技術問題及其參考回答&#xff1a;具體如下&#xff1a; MinIO的主要特性包括&#xff1a; 高性能&am…

加載ko驅動模塊:顯示Arm版本問題解決!

1、問題 驅動模塊加載&#xff0c;使用命令&#xff1a;modprobe chrdevbase.ko 時出現&#xff1a; hrdevbase: version magic 4.1.15 SMP preempt mod_unload modversions ARMv6 p2v8 ’ should be 4.1.15 SMP preempt mod_unload modversions ARMv7 p2v8 ’ ———————…

【論文閱讀一】掌握高效閱讀法,開啟學術研究新旅程:S. Keshav教授論文閱讀的三遍法

文章目錄 一、三遍閱讀法1. 初讀&#xff1a;10分鐘&#xff1a;宏觀把握&#xff0c;快速篩選2. 第二遍&#xff1a;1個小時&#xff1a;更仔細的閱讀&#xff0c;了解文中論點3. 第三遍&#xff1a;深入理解&#xff0c;注重細節&#xff0c;挑戰假設 二、運用三遍閱讀法進行…

3D Gaussian Splatting部分原理介紹和CUDA代碼解讀

本系列旨在幫助無CUDA代碼經驗的讀者、以及3DGS的初學者理解代碼邏輯。 3D GS論文原文鏈接&#xff1a;https://arxiv.org/abs/2308.04079 論文筆記鏈接&#xff1a;【論文筆記】3D Gaussian Splatting for Real-Time Radiance Field Rendering 【論文筆記】A Survey on 3D Ga…

【數據結構】--- 雙向鏈表的增刪查改

前言&#xff1a; 經過了幾個月的漫長歲月&#xff0c;回頭時年邁的小編發現&#xff0c;數據結構的內容還沒有寫博客&#xff0c;于是小編趕緊停下手頭的活動&#xff0c;補上博客以洗清身上的罪孽 目錄 前言&#xff1a; 概念&#xff1a; 雙鏈表的初始化 雙鏈表的判空 雙鏈表…

Ubuntu如何查看硬盤的使用情況,以及掛載情況。

在Ubuntu中查看硬盤使用情況及掛載情況&#xff0c;可通過以下命令實現&#xff1a; 一、查看硬盤使用情況 df -h 顯示所有掛載文件系統的磁盤空間使用情況&#xff08;含總容量、已用空間、可用空間等&#xff09;&#xff0c;輸出結果以易讀格式&#xff08;如GB、MB&#x…

Github 2025-05-02Java開源項目日報 Top9

根據Github Trendings的統計,今日(2025-05-02統計)共有9個項目上榜。根據開發語言中項目的數量,匯總情況如下: 開發語言項目數量Java項目9Android開源輕量級流媒體前端 創建周期:3158 天開發語言:Java協議類型:GNU General Public License v3.0Star數量:28641 個Fork數量…

linux學習——數據庫API創建

一.API操作 1.int sqlite3_open(char *filename,sqlite3 **db) 功能&#xff1a;打開sqlite數據庫 參數&#xff1a; filename:數據庫文件路徑 db:指向sqlite句柄的指針 &#xff08;splite3* db;&#xff09; 返回值…

Baklib內容中臺落地實戰指南

內容中臺實施最佳路徑 在構建企業級內容中臺的實踐中&#xff0c;架構設計與流程優化構成核心支撐框架。通過四庫體系&#xff08;知識庫、資源庫、模板庫、場景庫&#xff09;的有機組合&#xff0c;企業可實現從知識沉淀到場景化應用的閉環管理。智能檢索技術結合語義分析引…

【重走C++學習之路】26、類型轉換

目錄 一、C語言中的類型轉換 二、C中的四個類型轉換 2.1 static_cast 2.2 dynamic_cast 2.3 const_cast 2.4 reinterpret_cast 2.5 總結 結語 一、C語言中的類型轉換 在C語言中&#xff0c;如果賦值運算符左右兩側類型不同&#xff0c;或者形參與實參類型不匹配&a…

kotlin 過濾 filter 函數的作用和使用場景

1. filter 函數的作用 filter 是 Kotlin 集合操作中的一個高階函數&#xff0c;用于根據指定條件從集合中篩選出符合條件的元素。 作用&#xff1a;遍歷集合中的每個元素&#xff0c;并通過給定的 lambda 表達式判斷是否保留該元素。返回值&#xff1a;一個新的集合&#xff…