十天機試學習DAY1

2021-10-01 23:33:23 字數 3527 閱讀 8453

1.排序

輸入的第一行包括乙個整數n(1<=n<=100)。 接下來的一行包括n個整數。

輸出描述:

可能有多組測試資料,對於每組資料,將排序後的n個整數輸出,每個數後面都有乙個空格。

每組測試資料的結果佔一行。

#include

using

namespace std;

intmain()

//氣泡排序

for(

int i =

0; i < n; i++)}

}//輸出

for(

int i =

0; i < n; i++

) cout << endl;

}return0;

}

法2:呼叫c++庫函式#include< algorithm >中的sort ( arr, arr+size, compare ) 或 sort ( begin, end, compare )

sort

(a, a + n)

;

注:sort()預設公升序排列,如果要降序排列寫為:

bool

com(

int a,

int b)

//自定義排序規則

sort

(a, a + n,com)

;

2.成績排序

輸入描述: 測試資料有多組,每組輸入第一行有乙個整數n(n<=1000),接下來的n行包括n個學生的資料。

每個學生的資料報括姓名(長度不超過100的字串)、年齡(整形數)、成績(小於等於100的正數)。————>結構體

輸出描述: 將學生資訊按成績進行排序,成績相同的則按姓名的字母序進行排序。 然後輸出學生資訊,按照如下格式: 姓名 年齡 成績

學生姓名的字母序區分字母的大小寫,如a要比a的字母序靠前(因為a的asc碼比a的asc碼要小)。

#include

#include

#include

using

namespace std;

//定義結構體

struct stu

buf[

1000];

//建立結構體時將變數名放在結束括號的後面,即建立了乙個結構體物件

//定義排序規則

bool

com(stu a, stu b)

else

if(namecom!=0)

else

//名字也相同按照學生的年齡從小到大排序

}int

main()

//排序

sort

(buf, buf + n,com)

;//輸出

for(

int i =

0; i < n; i++)}

return0;

}

3.特殊排序

int

main()

//排序

sort

(a, a + n)

;//輸出

if(n ==1)

else

cout << endl;}}

return0;

}

4.1752:雞兔同籠

乙個籠子裡面關了雞和兔子(雞有2隻腳,兔子有4隻腳,沒有例外)。已經知道了籠子裡面腳的總數a,問籠子裡面至少有多少只動物,至多有多少只動物。

輸入 n表示有n個資料輸入,乙個正整數a (a < 32768)。 輸出

一行,包含兩個正整數,第乙個是最少的動物數,第二個是最多的動物數,兩個正整數用乙個空格分開。

如果沒有滿足要求的答案,則輸出兩個0,中間用乙個空格分開。

int

main()

return0;

}

5.校門外的樹

描述

某校大門外長度為l的馬路上有一排樹,每兩棵相鄰的樹之間的間隔都是1公尺。馬路上有一些區域要用來建地鐵。這些區域用它們在數軸上的起始點和終止點表示。已知任一區域的起始點和終止點的座標都是整數,區域之間可能有重合的部分。現在要把這些區域中的樹(包括區域端點處的兩棵樹)移走。計算將這些樹都移走後,馬路上還有多少棵樹。

輸入第一行有兩個整數l(1 <= l <= 10000)和 m(1 <= m <= 100),l代表馬路的長度,m代表區域的數目,l和m之間用乙個空格隔開。接下來的m行每行包含兩個不同的整數,用乙個空格隔開,表示乙個區域的起始點和終止點的座標。

輸出包括一行,這一行只包含乙個整數,表示馬路上剩餘的樹的數目。

int

main()

;//注意馬路長1 <= l <= 10000,樹最多10001棵

int begin, end, m =

0, l =0;

while

(cin >> l >> m)

//有多組輸入資料,有時候顯示wrong answer可能是沒有這一句

//統計

for(

int i =

0; i <= l; i++

) cout << sum << endl;

}return0;

}//時間複雜度為o(m*l)+o(l)=o(m*l)

6.裝箱問題

描述

乙個工廠製造的產品形狀都是長方體,它們的高度都是h,長和寬都相等,一共有六個型號,他們的長寬分別為11, 22, 33, 44, 55, 66。這些產品通常使用乙個 66h 的長方體包裹包裝然後郵寄給客戶。因為郵費很貴,所以工廠要想方設法的減小每個訂單運送時的包裹數量。他們很需要有乙個好的程式幫他們解決這個問題從而節省費用。現在這個程式由你來設計。

輸入輸入檔案包括幾行,每一行代表乙個訂單。每個訂單裡的一行包括六個整數,中間用空格隔開,分別為11至66這六種產品的數量。輸入檔案將以6個0組成的一行結尾。

輸出除了輸入的最後一行6個0以外,輸入檔案裡每一行對應著輸出檔案的一行,每一行輸出乙個整數代表對應的訂單所需的最小包裹數。

#include

#include

using

namespace std;

intmain()

;//當3*3箱子的個數為4k,4k+1,4k+2,4k+3時

//可放下2*2箱子個數分別為0,5,3,1

while

(cin>>a>>b>>c>>d>>e>>f)

x =36* n - b *

4- c *

9- d *

16- e *

25- f *36;

if(a > x)

cout << n << endl;

}return0;

}

學習第十天

一 介面 jdk1.8及之後新增了2中可以定義存在方法體的方法 預設方法 default關鍵字修飾的方法 使用 通過實現類物件使用 靜態方法 使用 通過介面名去呼叫 二 單例模式 保證類只能存在乙個例項 餓漢式 先建立物件,然後需要的人要這個物件,保證永遠使用的都是這個建立好的物件 執行緒安全的,效...

python學習第十天

class student count 0 def init self,name,age,address self.name name self.age age self.address address student.count 1 k print k w open a.txt w encodin...

菜鳥學習第十天

1.字串最大的特點 一旦初始化就不可以改變。不可改變的字串內容而不是指向字串的引用 2.string s abc 其中s是乙個類型別變數,abc 是乙個物件。3.string s1 abc 和string s2 new string abc s1 s2 和s1.equals s2 比較的是他們在記憶...