課程中涉及的題目

2021-08-29 04:07:34 字數 3865 閱讀 6820

1.「

水仙花數」是指乙個三位正整數,它各位數字的立方之和等於它本身。例如

,153

就是乙個「水仙花數」,因為

153=13+5

3+33。請給出輸出所有水仙花數的演算法。

2.給出求

1-1/2+1/3-1/4+…+1/19-1/20

的演算法。

3.按照階從高到低對以下函式排序:

答案:

課堂練習的題目:

1.裝箱問題(簡單)

problem description:

乙個工廠生產的產品形狀都是長方體,高度都是h,主要有1*1,2*2,3*3,4*4,5*5,6*6等6種。這些產品在郵寄時被包裝在乙個6*6*h的長方體包裹中。由於郵費很貴,工廠希望減小每個訂單的包裹數量以增加他們的利潤。因此他們需要乙個好的程式幫他們解決這個問題。你的任務就是設計這個程式。

input:

輸入包括多組測試資料,每一行代表乙個訂單。每個訂單裡的一行包括六個整數,用空格隔開,從小到大分別為這6種產品的數量。6個0表示檔案結束。

output:

針對每個訂單輸出乙個整數,佔一行,代表對應的訂單所需的最小包裹數。沒有多餘的空行。

sample input:

0 0 4 0 0 1

7 5 1 0 0 0

0 0 0 0 0 0

sample output:

2

1

**:

#include#include#include#include#includeusing namespace std;

//6*6乙個,5*5乙個+11個1*1

//4*4乙個+5個2*2;

//3*3四個

int main()

; n=d+e+f+(c+3)/4;

int y=d*5+u[c%4];

if(b>y) n+=ceil(b-y+8)/9;

//計算1*1的

int x=n*36-b*4-c*9-d*16-e*25-f*36;

if(a>x) n+=(a-x+35)/36;

printf("%d\n",n);

}return 0;

}

2.整數區間

problem description:

乙個整數區間[a,b](a < b),是乙個從a到b連續整數的集合。

現在給你n個整數區間,程式設計找出乙個集合r,使得n個集合中的每個集合都有2個整數出現在r中,並且這個集合r包含的整數個數最少。

input:

第一行包含整數n(1 <= n <= 10000),表示整數區間的個數。接下來n行,每行包含兩個整數a和b(0 <= a < b <= 10000, a < b)。

output:

輸出符合條件的集合r中元素的個數。

sample input:

4

3 62 4

0 24 7

sample output:

4
**:

#include #include #include using namespace std;

struct s

;bool vv(const s &a,const s &b)

int main()

vector aim;

sort(v.begin(),v.end(),vv);

for (int i = 0; i < n;i++)

}if (num == 0)

else if (num == 1 && flag ==0)

else if (num == 1 &&flag ==1)

aim.push_back(v[i].r-1);

}cout<3.安裝雷達

problem description

我們假設海岸線是一條無限直線:以海岸線為界,陸地和海洋被分開,在海邊分布著很多小島。現在,我們在海岸線上安裝雷達,每個雷達有固定的通訊範圍(以d為半徑的圓形區域),這樣,海邊的小島就可以被某個雷達訊號覆蓋。

這裡我們使用笛卡爾座標系,定義海岸線為x軸,x軸上方是海洋,下方是陸地。給出分布在海邊每個小島的座標位置和雷達訊號能覆蓋的範圍d,你的任務是計算出最小需要安裝的雷達數目,使得這些雷達訊號能覆蓋到所有海邊的小島。每個小島的座標格式為(x,y)。

如下圖所示,給出第乙個輸入樣例的座標表示,這樣在(-2,0),(1,0)上分別安裝雷達就可以覆蓋所有的小島(p點),所以我們只需要安裝2個雷達。

input

輸入包含多組測試樣例。每組測試第一行包含兩個整數n(1<=n<=1000)和d,n表示小島的數目,d表示雷達能覆蓋的範圍的半徑。接下來n行,每行由整數x和y組成,表示n個小島的座標位置。每兩組資料之間有乙個空行。

輸入0 0表示輸入的結束。

output

對於每一組輸入,按照輸出樣例中的格式輸出:包含輸出序號和最少需要安裝雷達的數目。如果找不到解決方案,即不能找到一種安裝方案覆蓋所有的小島,輸出」-1」。

sample input

3 21 2-3 1

2 11 2

0 20 0

sample output

case 1: 2

case 2: 1

**:

#include#include#includeusing namespace std;

struct node

arr[1123];

int cmp(struct node a,struct node b)

if(flag)

sort(arr,arr+n,cmp);

double ***=arr[0].r;

int count=1;

for(int i=1;i***)

else if(arr[i].r4.最長上公升子串行

problem description

乙個數的序列bi,當b1 < b2 < ... < bs的時候,我們稱這個序列是上公升的。對於給定的乙個序列(a1, a2, ..., an),我們可以得到一些上公升的子串行(ai1, ai2, ..., aik),這裡1 <= i1 < i2 < ... 你的任務,就是對於給定的序列,求出最長上公升子串行的長度。

input

輸入有很多組,每組輸入的第一行是序列的長度n (1 <= n <= 1000)。第二行給出序列中的n個整數,這些整數的取值範圍都在0到10000。

output

輸出每組的最長上公升子串行的長度。

sample input

71 7 3 5 9 4 8

62 3 4 1 6 5

sample output

4

4

最長上公升子串行的參考部落格:

**:

#includeconst int max=1001;

int a[max];

int lis(int x)

}int maxx=0;

for(int i=0;i

if(maxx

maxx=num[i];

return maxx;

}int main()

筆試面試中涉及位運算的題目總結(一)

題目一 有乙個正整數,請找出其二進位制表示中1的個數相同 且大小最接近的那兩個數。乙個略大,乙個略小 給定正整數int x,請返回乙個vector,代表所求的兩個數 小的在前 保證答案存在。測試樣例 2返回 1,4 題目分析 對於這道題目,我覺得最重要的就是求乙個數的二進位制表示中1的個數。關於求乙...

openstack neutron中涉及的網路裝置

一 openstack neutron網路裝置介紹 bridge 網橋 用於將兩個lan連線起來,主要靠的mac位址學習機制。當網橋的port收到包時會將包的源mac和port id關聯起來記入mac學習表,通過這個學習過程來完善mac表。也就是收包時自動學習源mac,學習的目的就是 包的時候來使用...

課程設計(題目二)

一 題目 李剛是一愛折騰的人,當然愛折騰的人均有夢想,他想當中國的蓋次呢。可不,現在個人好友資訊多了,複雜了,他想製作一 個個人通訊錄的製作管理軟體。剛好這個學期學了資料結構課,所以他準備使用資料結構知識來實現了。並考慮使用雙向鍊錶作數 據結構。並制定了初步要求 2 作為乙個完整的系統,應具有友好的...