2023年北理複試上機題

2021-09-12 17:44:52 字數 1847 閱讀 3469

1、輸入乙個只含有英文本母的字串,輸出最大回文子串的長度及此長度回文子串的個數(回文不區分大小寫)。

樣例:輸入abaab  (最大回文子串為baab)

輸出4 1

輸入abcbbb  (最大回文子串為bcb和bbb)

輸出 3 2

實際測試樣例:

輸入:a b

輸出: 1 2

輸入:abcbb

輸出:3 1

輸入:aaaaaa

輸出:6  1

#includeusing namespace std;

//判斷是否為回文串

bool judge(string str)

return true;

}//計算s在str**現了幾次

2、哥德**猜想

任何乙個大於2的偶數均可表示為兩個素數之和。輸入m, n(6<=m<=n<=50),則把[m, n]內的所有偶數表示成兩個素數之和的形式。輸出這些素數及其出線的次數,輸出次序按照素數出現的次數從多到少輸出;若出線次數相同,按照素數從大到小輸出;若偶數有多種素數相加形式,則把所有的情況都輸出,每種情況佔一行。

輸入:8 9    輸出:5 1 3 1

輸入:9 10  輸出:5 2

7 1 3 1

輸入:14 15 輸出:7 2

11 1 3 1

輸入:8 10   輸出:5 3 3 1

3 2 7 1 5 1

#includeusing namespace std;

static int num[100] = ; //素篩

vectorvect; //存放素數

typedef pairpair;

//自定義排序

bool cmp(pair a, pair b)

//素篩確定素數表

void f()

} for(int i = 2;i <= 100;i++)

} //計算兩個向量的笛卡爾積

vector> cal(vector> v1, vector> v2)

for(map::iterator iter = n2.begin();iter != n2.end();iter++)

vectortemp(m1.begin(), m1.end());

sort(temp.begin(), temp.end(), cmp);

for(int k = 0;k < temp.size();k++)

res.push_back(m2);

} }return res;

}int main()

} m[i] = v1; }

if(m.size() == 1)

for(int i = res.size() - 1;i >= 0;i--){ //遍歷每個map,並排序

2023年北理複試上機題

1 輸入一串整數,輸入指令。要求 1 輸入a t,在這串整數後新增整數t。2 輸入c m n,用n替換m。3 輸入d t,刪除t。4 輸入s排序。include include include include include using namespace std print vectorvi co...

2023年北理複試上機題

這題遇到了很多問題,首先是sscanf 在使用這個時,無論是前面的字串還是後面用來接受的變數,注意都是字元陣列,不要用string,但可以接收後,直接賦值給string。char 型別給string 直接賦值,反之不可,用for i 0 i當結構體型別是 迭代器 it,訪問它內容的時候就不要 直接i...

2023年北理複試上機題

1 某人有 8 角的郵票 5 張,1 元的郵票 4 張,1元 8 角的郵票 6 張,用這些郵票中的一張或若干張可以得到多少種不同的郵資?題目要求是得到不同的郵資,也就是最後的總價值是不同的。這裡我們可以考慮完所有的情況,然後去掉重複的就可以了。include includeusing namespa...