典型的3N+1問題。
程式碼:
#include <iostream> using namespace std; int main() { int a, b; while (cin >> a >> b) { int maxCycleLength = 0, cycleLength = 0, n; cout << a << " " << b << " "; if (a > b) swap(a, b); for (int i = a; i <= b; i++) { n = i; cycleLength = 1; while (n != 1) { if (n % 2) // even n = 3 * n + 1; else //odd n = n / 2; cycleLength++; } maxCycleLength = cycleLength > maxCycleLength ? cycleLength : maxCycleLength; } cout << maxCycleLength << endl; } return 0; }
沒有留言:
張貼留言