(C語言)PAT乙等1001 「3n 1問題」

2021-10-14 14:51:25 字數 615 閱讀 8014

對任何乙個正整數 n,如果它是偶數,那麼把它砍掉一半;如果它是奇數,那麼把 (3n+1) 砍掉一半。這樣一直反覆砍下去,最後一定在某一步得到

n=1。卡拉茲在 1950

年的世界數學家大會上公布了這個猜想,傳說當時耶魯大學師生齊動員,拼命想證明這個貌似很傻很天真的命題,結果鬧得學生們無心學業,一心只證

(3n+1),以至於有人說這是乙個陰謀,卡拉茲是在蓄意延緩美國數學界教學與科研的進展……

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

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

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

輸入樣例: 3 輸出樣例: 5

解題方案——簡單遞迴

# include

void

main()

intcallatz

(int num,

int time)

主要是做遞迴的時候要考慮終止遞迴的條件。有問題的話可以指出呀!

PAT 乙等 1004 C語言

讀入n名學生的姓名 學號 成績,分別輸出成績最高和成績最低學生的姓名和學號。輸入格式 每個測試輸入包含1個測試用例,格式為 第1行 正整數n 第2行 第1個學生的姓名 學號 成績 第3行 第2個學生的姓名 學號 成績 第n 1行 第n個學生的姓名 學號 成績其中姓名和學號均為不超過10個字元的字串,...

PAT 乙等 1011 C語言

給定區間 231,231 內的3個整數a b和c,請判斷a b是否大於c。輸入格式 輸入第1行給出正整數t 10 是測試用例的個數。隨後給出t組測試用例,每組佔一行,順序給出a b和c。整數間以空格分隔。輸出格式 對每組測試用例,在一行中輸出 case x true 如果a b c,否則輸出 cas...

PAT 乙等 1013 C語言

令pi表示第i個素數。現任給兩個正整數m n 104,請輸出pm到pn的所有素數。輸入格式 輸入在一行中給出m和n,其間以空格分隔。輸出格式 輸出從pm到pn的所有素數,每10個數字佔1行,其間以空格分隔,但行末不得有多餘空格。輸入樣例 5 27輸出樣例 11 13 17 19 23 29 31 3...