PAT基礎題刷題筆記

2021-08-29 23:46:44 字數 683 閱讀 3526

新生初學python,但是不練習就不會熟練,於是找到了pat乙級基礎題來鍛鍊一下自己的能力,將程式設計通過的**分享出來,希望各位大神能提出寶貴意見,謝謝!

卡拉茲(callatz)猜想:

對任何乙個正整數 n,如果它是偶數,那麼把它砍掉一半;如果它是奇數,那麼把 (3n+1) 砍掉一半。這樣一直反覆砍下去,最後一定在某一步得到 n=1。卡拉茲在 1950 年的世界數學家大會上公布了這個猜想,傳說當時耶魯大學師生齊動員,拼命想證明這個貌似很傻很天真的命題,結果鬧得學生們無心學業,一心只證 (3n+1),以至於有人說這是乙個陰謀,卡拉茲是在蓄意延緩美國數學界教學與科研的進展……

我們今天的題目不是證明卡拉茲猜想,而是對給定的任一不超過 1000 的正整數 n,簡單地數一下,需要多少步(砍幾下)才能得到 n=1?

每個測試輸入包含 1 個測試用例,即給出正整數 n 的值。

輸出從 n 計算到 1 需要的步數。

3
5
a = eval(input())

b = 0

while a != 1:

if a % 2 == 0:

a /= 2

else:

a = (3 * a + 1) / 2

b += 1

print(b)

PAT甲級刷題

給定兩個字串s1和s2,刪除s1中在s2 現過的字元設定flag陣列,初始化為0。遍歷s2並將其字元轉化為ascii碼值,並在flag陣列中相應位置值標記為1,表示它出現過。再遍歷s1,若對應字元ascii碼值在flag陣列中相應位置值標記為0,則輸出。就是hash的思想,時間複雜度o len s1...

PAT刷題日誌

調整刷題策略 集中精力刷 演算法筆記 第四章的題目,夯實基礎。基礎實在太差,第八章之後的題目壓根就不會,做題的時候就是抄一遍 理解一遍 根本不能算作刷題,而是被題刷。之前乙個知識點一道題的方法根本就是走馬觀花,蜻蜓點水,抄一遍 就覺得會了,第二天就忘乾淨了 兩個字來形容 浮躁 十多天的時間裡參加了倆...

pat刷題之旅1002

一開始那道題,我的思路就是用乙個變數n來儲存所輸入的數,之後通過模10,除10運算來求得每一位上的數之和,最後將所求得的和進行模10,除10將每一位上的數放到陣列arr中,通過switch case語句對應到相應的漢字表示中。如下。include includeint main int s 0,i ...