3n 1問題大資料如何處理?

2021-06-28 03:38:53 字數 837 閱讀 3188

題目來自codevs

3n+1問題是乙個簡單有趣而又沒有解決的數學問題。這個問題是由l. collatz在2023年提出的。克拉茲問題(collatz problem)也被叫做hailstone問題、3n+1問題、hasse演算法問題、kakutani演算法問題、thwaites猜想或者ulam問題。

問題如下:

(1)輸入乙個正整數n;

(2)如果n=1則結束;

(3)如果n是奇數,則n變為3n+1,否則n變為n/2;

(4)轉入第(2)步。

克拉茲問題的特殊之處在於:儘管很容易將這個問題講清楚,但直到今天仍不能保證這個問題的演算法對所有可能的輸入都有效——即至今沒有人證明對所有的正整數該過程都終止。

輸入第一行是乙個整數t.表示輸入資料的組數.

第二行是t個正整數n.

輸出對於每個正整數n,每行輸出乙個數s,表示n通過多少步變換會變成1,如果n無法變成1,則輸出-1.

1 <= t <= 300000

1 <= n <= 1000000000

以下是我的**,很可惜這個**是錯誤的

#include

#include

#include

using namespace std;

int main()

else

t--;

}cout<

}return 0;

}資料很大 但是用longlong出現了各種問題,一下午也沒調好

我曾嘗試採用c標準輸入輸出 但是結果錯誤 用流輸入輸出小資料可以過

究竟應該怎麼處理?作為新手請前輩們指點

3n 1數列問題

time limit 1000ms memory limit 65536k 有一天小標遇到了經典的3n 1數鏈問題,他想知道3n 1數鏈的前k個數是多少。下面小標來給你介紹一下3n 1數鏈是什麼,給定乙個數n,如果n為偶數,那麼下乙個數n1 n 2 否則n1 3 n 1 如果n1為偶數,那麼下乙個數...

3n 1數列問題

problem description 有一天小標遇到了經典的3n 1數鏈問題,他想知道3n 1數鏈的前k個數是多少。下面小標來給你介紹一下3n 1數鏈是什麼,給定乙個數n,如果n為偶數,那麼下乙個數n1 n 2 否則n1 3 n 1 如果n1為偶數,那麼下乙個數n2 n1 2 否則n2 3 n1 ...

3n 1數列問題

time limit 1000ms memory limit 65536kb problem description 有一天小標遇到了經典的3n 1數鏈問題,他想知道3n 1數鏈的前k個數是多少。下面小標來給你介紹一下3n 1數鏈是什麼,給定乙個數n,如果n為偶數,那麼下乙個數n1 n 2 否則n1...