PTA題目總結

菜要多練丫發表於2023-03-26

(1)前言:第一次題目集主要考察JAVA的一些語法知識,比如,控制檯的輸入,輸出時保留兩位小數,陣列的使用,第十題有點難度,當時沒寫出來,現在想想

 

也還好,就是讀懂題目有點費勁,第一次題目的題量比較大,有十二道題目。

第二次題目集主要考察型別轉化,第一題為float型,第二題考察陣列的建立int[ ] a = new int[4 ];第三題也需要將輸出強制改為float,第四題考察字元陣列String[ ] a = new String[4];第五題考察equals函式的使用,用於字串之間的比較以及substring(a,b)函式的使用,為第a到b-1之間的所有字元;第六題主要考察float型,將所有的變數變為float;第七題主要考察contains()函式以及indexOf()以及charAt();第八題主要考察三角形,只要將等腰三角形單獨提出來對他進行分析,直角三角形只需要將兩邊之和與第三邊的差小於很小的數(1e-5);第九題主要考察閏年的求解以及日期是否合法,12月的最後一天年份加一,月份的最後一天月份加一;其他的就直接天數加一;

第三次題目集主要考察類與物件,第一題主要考察圓的屬性,方法的使用,無參及有參構造方法,難度不大,可以更具書上的內容來進行作答;第二題主要考察類的方法的呼叫,改變他的值,難度不大,就是需要想清楚他們之間的關係;第三題與第二次題目集的最後一題很像,只要加上類的呼叫方法就行了,難度不大;第四題考查的是方法的使用及呼叫,比較靈活,有點難度;

(2)設計與分析:第一次題目集考查的是語法以及邏輯關係,只要對題目的邏輯語法進行相應的分析就行了;第二次題目集考察的是輸出格式float型,需要進行轉化以及equals函式的使用三角形的等腰問題,包括了兩種,需要進行分析;

第三次題目集考察了類與物件,第一題對圓的屬性和方法進行了呼叫,第二題則對account類進行處理,第三題

 

 

 

第四題

 

 

 

需要理清楚他們之間的關係,對他們進行使用;

(3)踩坑心得:

1.保留兩位小數沒有用這種形式,導致測試點沒有透過;

 

 

2.這裡的體重指數當時的邏輯沒有很清楚,不符合條件的體重一直能透過,所以導致最後的答案一直“Wrong Format”,經過這個調整以後測試點才透過;

3.這裡當時輸出時沒有用print代替println,處理導致當時的結果空了很多行,使得測試點一直沒過,進行改正之後,才透過測試點;

4.這裡當時沒有在count++後面進行處理,雖然透過了測試點但是答案並不是正確的,有點瑕疵;所以可以將結果改為下面的型別就可以了;

5.當時處理的時候並沒有從新定義變數,導致變數的值一直在變沒有固定下來;後來想想只需要將變數另外設定一個值就行了,這樣就不會改變變數的值,也就能透過測試點了;

6.這裡當時沒有對天數進行約束,沒有使得day>0,所以測試點沒有過,對day進行約束就可以透過啦

7.當時處理字元相等的時候用的是“=”,導致測試點沒有透過,出現了編譯錯誤,後來查詢資料發現需要用到equals來進行字串之間的比較是否相等的情況;

8.在做這個三角形題目的時候,並沒有考慮到他們之間是不會相等的,因為輸入的是個浮點數,所以我們只需要將三角形的兩邊之和與第三邊的差小於一個很小的數就可以啦,然後記得要加上絕對值,否則也是會出錯的;

9.當時沒有給radius前面加上this導致出現編譯錯誤,this表示當前物件,對當前物件進行定義;

10.用get時需要有返回值,否則會出現錯誤

 

11.當時做這個題目時並沒有進行這種初始化賦值,導致沒有做對,實際上是需要進行賦值的;

 

12.當時處理這個時間的時候不知道該怎麼呼叫它,後來乾脆就直接把他定死,把時間定為一個固定值直接輸出;

 

13.做這個題目我用了兩種方法,之前的方法感覺不是很好,有點複雜化了,所以我就用了第二種方法,註釋掉的為之前的方法;

 

 

14.做到這一步的時候我開始是吧這個函式的呼叫放到了外面,所以導致結果有點錯誤,之後想了想他是應該放在裡面的,不然他的值是會改變的;

 

 

15.開始粗心大意的以為時間和上一題的很像,結果發現並不一樣,這是一個坑了;

 

 

16.這個求下N天剛開始,真的不知道問題出在哪裡,感覺直接用一個迴圈重複第三題的求法應該就沒問題了呀,可是當給a[2]賦值的時候他的天數就是固定的,根本不會變,所以,我們應該在賦值之後的那一步加上a[2]=28,這樣的從新賦值,就不會使得答案有差別;

 

 

 

 

17.這一題和上面的16點的知識是一樣的,都需要重新賦值;

 

 

 

 

18.剛開始我這裡寫的是a[month-1]可是後來發現,Month已經是減了之後的狀態,根本不需要再一步進行減一的操作;

 

 

 

19.這裡剛開始不是很理解為什麼要怎麼做,後來想明白了,這是為了方便進行求日期,所以可以先判斷他們兩個日期誰先誰後這樣會比較好求解,然後再根據年份相同比較月份,月份相同比較天數,年份不同就慢慢的計算;

 

20.這裡是進行年份先後的判斷,方便後面的計算;

 

 

21.這裡是輸出返回的結果,直接String一個字串,直接賦值,然後返回結果;

 

(4)改進建議:

1.在做這道題目的時候有點難為情,當時不知道咋下筆,後來就想通了,然後覺得這樣子改進會比較好:

註釋的地方是進行改進的地方;

2.這個地方也是可以這樣子來改進的,就不會顯得頭重腳輕;

 

3.這個地方也是可以不用那樣子返回值,註釋的地方為第一次寫的,有點青澀,感覺這樣寫會比較好操作;

 

 

 

(5)總結:

透過這三次的練習發現,第一次主要考察的是對於JAVA的一些語法。然後第二次。也和邏輯語法有密切的關係,第三次考察的主要是類與物件。在第一次題目集中學到了怎麼用陣列來表示?他們之間的關係,建立一個字串陣列,或者是整型陣列來儲存相應的數字,這樣就可以更好的求出你要的結果。印象比較深刻的是第十題,他的意思有點難懂,比較難理解,所以暫時還沒弄出來,在老師規定的時間裡。第二次題目集主要對輸出形態有相應的規定,有些輸出形態一定要把它強制轉換為浮點型才能夠輸出正確,否則的話輸出結果都是錯誤的。這一次印象比較深刻的是第。八題三角形的計算時。有一個。直角三角形的計算,它需要兩邊之和的平方減去,第三邊大於一個較小的數,因為他們的值不會等於零,然後還需要用絕對值的方式表示出來,所以這道題目比較難。更好的鍛鍊了我的思維。第三次題目及剛開始接觸的時候是有點生疏的,因為對類與物件並沒有很強大的理解,也沒有看書,所以直接做的話有一點困難。然後在看完了書之後,第一題和第二題相對來說是比較簡單的,當時做第二題的時候做的時間比較久,主要是因為對這種。關係之間並不是很清楚,而且不是特別的理解。然後做到第三題的時候就開始上手了,因為第三題計算時間的時候和第二次的第九題十分的相似。所以寫的時候就會比較容易,第四題的時候又與第三題緊密相扣,所以說這些題目都是比較有挑戰性的。第四題在進行計算下一天的時候,讓我學習了需要重新把它。定義一下,否則的話,會出現日期的增多。然後再做第三次練習題的時候。對於類的方法和物件有了更清晰的瞭解,感性方面,希望老師能夠。講一講每道題的大致思路,或者是發一下錯的比較多的題目,應該怎樣正確的規範自己的想法?因為有些題目做對是做對了,但是可能並不是特別的規範,有些甚至是直接。過了某一個點就行,完全達不到真正的要求和效果。還有就是希望老師給的時間多一點,這樣也會讓我們有更多的時間思考,不會特別的緊張和無措,對於做題目的時候會做的比較從容,不會有那種緊張的感覺。