卡拉茲Callatz猜想 問題 A 剩下的樹

2021-10-14 01:50:00 字數 1385 閱讀 5881

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

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

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

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

輸入樣例:

輸出樣例:

5詳細c++**如下:

#include

using

namespace std;

intmain()

cout << count << endl;

return0;

}

另一種**

#include

intmain()

printf

("%d\n"

, step)

;return0;

}

有乙個長度為整數l(1<=l<=10000)的馬路,可以想象成數軸上長度為l的乙個線段,起點是座標原點,在每個整數座標點有一棵樹,即在0,1,2,…,l共l+1個位置上有l+1棵樹。

現在要移走一些樹,移走的樹的區間用一對數字表示,如 100 200表示移走從100到200之間(包括端點)所有的樹。

可能有m(1<=m<=100)個區間,區間之間可能有重疊。現在要求移走所有區間的樹之後剩下的樹的個數。

我的c++**如下:

#include

using

namespace std;

intmain()

;for

(int t =

0; t <= l; t++

)for

(int i =

0; i < m; i++

)//每組的資料

}int num =0;

for(

int k =

0; k <= l; k++

) cout << num << endl;

}return0;

}

執行結果部分如下:

卡拉茲 Callatz 猜想

卡拉茲 callatz 猜想 對任何乙個自然數n,如果它是偶數,那麼把它砍掉一半 如果它是奇數,那麼把 3n 1 砍掉一半。這樣一直反覆砍下去,最後一定在某一步得到n 1。卡拉茲在1950年的世界數學家大會上公布了這個猜想,傳說當時耶魯大學師生齊動員,拼命想證明這個貌似很傻很天真的命題,結果鬧得學生...

卡拉茲 Callatz 猜想

卡拉茲 callatz 猜想 對任何乙個自然數n,如果它是偶數,那麼把它砍掉一半 如果它是奇數,那麼把 3n 1 砍掉一半。這樣一直反覆砍下去,最後一定在某一步得到n 1。卡拉茲在1950年的世界數學家大會上公布了這個猜想,傳說當時耶魯大學師生齊動員,拼命想證明這個貌似很傻很天真的命題,結果鬧得學生...

卡拉茲 Callatz 猜想

卡拉茲 callatz 猜想 對任何乙個自然數n,如果它是偶數,那麼把它砍掉一半 如果它是奇數,那麼把 3n 1 砍掉一半。這樣一直反覆砍下去,最後一定在某一步 得到n 1。卡拉茲在1950年的世界數學家大會上公布了這個猜想,傳說當時耶魯大學師生齊動員,拼命想證明這個貌似很傻很天真的命題,結果鬧得學...