關於3N 1溢位問題的解決

2021-06-27 15:47:30 字數 624 閱讀 9502

乙個大於1的自然數n,若n為奇數,則變為3n+1,若為偶數,則除以二,最後總能得到2,求變換的次數。

初始**如下:

#include #include using namespace std;

int main()

cout << counter;

return 0;

}

但是輸入987654321的時候,輸出為1.顯然錯誤,因為發生了溢位問題。

我們考慮把n變為double或者long long

1. double型

#include #include using namespace std;

int main()

cout << counter;

return 0;

}

2.long long 型

#include #include using namespace std;

int main()

cout << counter;

return 0;

}

這樣就不會有溢位問題了~

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...