2011北郵計算機院複試上機題

2021-10-16 19:50:11 字數 2247 閱讀 5932

problem.a 反轉單詞

思路

經典的考察對於輸入輸出流的理解的題,可作為模板記住,用字串型的棧儲存輸入的單詞,因為題中說明了沒有連續空格也沒有標點符號,所以可以放心使用cin,跳過空格但不跳過回車,回車需要特殊處理。個人認為也可用getline(cin,str," ")作為迴圈條件(如果包含空格或者是標點就要這麼做),第三個引數設定為空格來表示一次輸入的結束。

#include

#include

#include

#include

using

namespace std;

intmain()

//一組資料輸入完畢

while

(!s.

empty()

) cout << endl;

//將輸出緩衝區的內容輸出,endl自動輸出回車

}return0;

}

problem.b 912星球的研究生

思路

建立乙個結構體儲存乙個學生的id和score,輸入對應資料,值得注意的是這裡的cin>>int型資料是會自動轉化為int型的(我做的時候以為只能輸入到字串型變數中,手動化為int型,又麻煩又容易錯)

這道題讀題也挺重要的,這裡的n是命令列的行數,也是最大的研究生數量,而不是實際的研究生數量,這導致我找了將近兩個小時的bug,非常不爽。

#include

#include

using

namespace std;

struct node

;node stu[

100]

;int

main()

else

if(str ==

"find")if

(found ==0)

cout <<

"no result!"

<< endl;}}

}system

("pause");

return0;

}

problem.c 尋找寶藏

思路

重點是樹的順序表示法,在c++中因為乙個孩子有且僅有乙個父親節點,所以表示所有的父親節點可以簡單地用陣列表示,下標表示孩子結點標號;因為乙個父親節點可以有多個孩子,所以表示所有的孩子節點必須用vector容器,下標表示父結點標號。

每個葉節點到根節點有且僅有一條路徑,用1連續除以把這個路徑上每個分支節點的孩子個數就可以得到所求概率。

#include

#include

using

namespace std;

//因為乙個孩子有且僅有乙個父親節點,所以表示所有的父親節點可以簡單地用陣列表示,下標表示孩子結點標號

int parent[

1010];

//因為乙個父親節點可以有多個孩子,所以表示所有的孩子節點必須用vector容器,下標表示父結點標號

vector<

int> child[

1010];

intmain()

float p =

1.0, child_num;

tmp = l;

while

(tmp !=0)

printf

("%0.6f"

, p)

;return0;

}

problem.d 哈夫曼樹(求wpl)思路

2014北郵計算機院複試上機(上)

problem.a 眾數 思路 常規題穩拿分 include include using namespace std define maxn 100001 int cnt maxn int main else if max cnt num if num prob num num cout retur...

2023年北航計算機複試上機題

當前程式設計題 求孿生數 1.問題描述 孿生數定義 如果a的約數 因數,包含1,但不包含a本身 之和等於b,b的約數 因數 之和等於a,a和b稱為孿生數 a和b不相等 試找出正整數m和n之間的孿生數。輸入形式 從控制台輸入兩個正整數m和n 1 m 輸出形式 在標準輸出上輸出符合題目描述的m和n之間的...

2014北郵計算機學院上午上機複試題目

輸入格式 輸入資料第一行是乙個整數t 1 t 100 表示測試資料的組數。對於每組測試資料 第一行是乙個正整數n 1 n 100 表示數列長度。第二行有n個整數,整數之間用空格隔開,所有的整數都不超過105,表示這個數列。輸出格式 對於每組測試資料,輸出乙個整數。輸入樣例 541 1125 1122...