PTA一周練(第一周)記錄

2021-08-13 16:01:43 字數 3668 閱讀 6074

因為想法比較雜亂無章,所以寫個部落格記錄一下練習中的一些想法與問題。

第一周的練習記錄:

7-1:

正整數a+b

題的目標很簡單,就是求兩個正整數ab的和,其中ab都在區間[1,1000]。稍微有點麻煩的是,輸入並不保證是兩個正整數。

輸入在一行給出ab,其間以空格分開。問題是ab不一定是滿足要求的正整數,有時候可能是超出範圍的數字、負數、帶小數點的實數、甚至是一堆亂碼。

注意:我們把輸入中出現的第1個空格認為是ab的分隔。題目保證至少存在乙個空格,並且b不是乙個空字串。

如果輸入的確是兩個正整數,則按格式a + b = 和輸出。如果某個輸入不合要求,則在相應位置輸出?,顯然此時和也是?

123 456
123 + 456 = 579
22. 18
? + 18 = ?
-100 blabla bla...33
? + ? = ?
這個題目的坑太多了!

一不小心就錯了,所以來列一下自己忘記注意的幾個坑:(按照輸入格式裡寫的順序

1.a,b的數值範圍

2.a 為空字串

然後記錄下這個題目用的一些語句:

1.數字字元轉整型:『4『- '0'

所以數字字串轉整型可以寫為: sum = 0;

for(int i=0;isum = sum * 10 + (x[i] - '0');

2.標頭檔案string.h中的一些函式:isdigit(char x);strlen(char x[ ]);

7-3: 出租

一時間網上一片求救聲,急問這個怎麼破。其實這段**很簡單,index陣列就是arr陣列的下標,index[0]=2對應arr[2]=1index[1]=0對應arr[0]=8index[2]=3對應arr[3]=0,以此類推…… 很容易得到**號碼是18013820100

本題要求你編寫乙個程式,為任何乙個**號碼生成這段** —— 事實上,只要生成最前面兩行就可以了,後面內容是不變的。

輸入在一行中給出乙個由11位數字組成的手機號碼。

為輸入的號碼生成**的前兩行,其中arr中的數字必須按遞減順序給出。

18013820100
int arr = new int;

int index = new int;

這一題,第一次寫的時候想複雜了,那時候還沒接觸雜湊法,也沒想到直接用下標對應的方式(自己太笨了

小問題:

1. 用int定義了陣列來存手機號後,又用gets去讀,導致後來用陣列儲存的值作下標去操作時,程式跑不出來(被自己坑到

2.記錄的時候腦子特別混,老是弄錯什麼用作標誌位,什麼時候記下下標(腦子亂的時候,要寫下備註提醒自己

3. 輸出可以剛開始輸出乙個然後,後面的帶,輸出

想法:用下標對應的辦法,設定乙個10位int型陣列並設定其每個值都為0,arr[0]對應數字0,arr[1]對應數字1…即arr[手機數字]

在輸出arr前將手機號數字對應arr[手機數字]位置置1;倒著迴圈判斷輸出,後將該位置置相應的順序數字;然後迴圈輸出

用到的語句:

arr[ phone [i] - '0' ] = 1; 

7-4:

判斷素數(10 分)

本題的目標很簡單,就是判斷乙個給定的正整數是否素數。

輸入在第一行給出乙個正整數n

≤ 10),隨後n行,每行給出乙個小於2​

31​​

的需要判斷的正整數。

對每個需要判斷的正整數,如果它是素數,則在一行中輸出yes,否則輸出no

2

11111

yes

no

對每個需要判斷的正整數,如果它是素數,則在一行中輸出yes,否則輸出no

剛開始是1不是素數的問題,後來改過之後還是不對,最後才發現是標誌位的位置沒有放對,導致題目一直沒通過。(馬虎!!!

7-6 :

一幫一「一幫一學習小組」是中小學中常見的學習組織方式,老師把學習成績靠前的學生跟學習成績靠後的學生排在一組。本題就請你編寫程式幫助老師自動完成這個分配工作,即在得到全班學生的排名後,在當前尚未分組的學生中,將名次最靠前的學生與名次最靠後的異性學生分為一組。

輸入第一行給出正偶數n

≤50),即全班學生的人數。此後n行,按照名次從高到低的順序給出每個學生的性別(0代表女生,1代表男生)和姓名(不超過8個英文本母的非空字串),其間以1個空格分隔。這裡保證本班男女比例是1:1,並且沒有並列名次。

每行輸出一組兩個學生的姓名,其間以1個空格分隔。名次高的學生在前,名次低的學生在後。小組的輸出順序按照前面學生的名次從高到低排列。

8

0 amy

1 tom

1 bill

0 cindy

0 maya

1 john

1 jack

0 linda

amy jack

tom linda

bill maya

cindy john

解決輸入儲存和輸出的問題即可

7-5:

是不是太胖了 7-7 :

到底是不是太胖了

兩個題目之間有所聯絡,7-5計算,7-7根據計算結果輸出相應的語句。需要注意的是要避開浮點數以及邊界值的問題。

7-8 :

left-pad輸入在第一行給出乙個正整數n(≤1

0​4​

​)和乙個字元,分別是填充結果字串的長度和用於填充的字元,中間以1個空格分開。第二行給出原始的非空字串,以回車結束。

在一行中輸出結果字串。

15 _

i love gplt

____i love gplt
4 *

this is a sample for cut

cut
注意字串長度問題即可

第一周部落格記錄

這是第一周的學習記錄,由於最近的計算機設計大賽,沒有進行系統的學習,所以只是規整一下自己以往的知識點還有一些學習想法吧。第一次接觸html,是在學長的帶領下,但剛開始的時候只是覺得好看而已,後來進一步的學習,是由於閨蜜過生日,想送給她乙個意義非凡的禮物。那時起,才想起來自己曾經學過一段時間的html...

python第一周心得 Python第一周總結

變數 不能為系統自帶的內建函式,如def,help,sum等等 變數不能已下劃線數字來開頭,對大小寫敏感 變數後直接接數字,則被賦值為整型,如何加引號則賦值型別為字串str型別 a 1 整型 int b 2 字串 str 用print 直接輸出 a hello print a 在 使用者想要同時輸出...

第一周周記

下面是整個文章的第二部分,日常的安利 這周的話,除了整體恢復正常,週末我也購置了我的第一塊外接鍵盤,這裡的話我選擇的是國產的靜電容鍵盤niz的plum 87鍵鍵盤。今天拿到這個鍵盤第一天,整體使用了一下,尺寸配合著15寸的蘋果macbook pro可以說恰到好處,除此以外,整個鍵盤還是給我不少驚喜的...