문 ¶
2005-12-30 14:39:20 Accepted 3.256 436 56031 C++ 100 - The 3n + 1 problem
¶
봇 Accepted는 메를 문.
말 많 를 . 만 무 면 못 .
말 많 를 . 만 무 면 못 .
¶
1. 2 범 들는 데 번 는 못. ( 번 )
2. 대 느. (& ), 2(right shift 1) - 됨.
3. 리 대 명 루 는 를 배. - 뒤 .
4. 번 문 말 - 림 는 모 보.
2. 대 느. (& ), 2(right shift 1) - 됨.
3. 리 대 명 루 는 를 배. - 뒤 .
4. 번 문 말 - 림 는 모 보.
¶
~cpp // The 3n + 1 problem // UVa ID : 100 #include <iostream> using namespace std; int cycle_length(int input); int main() { int input1, input2; while (cin >> input1 >> input2) { int i; int max_count = -1; int temp = 0; // 대 뒤바뀌면 !! cout << input1 << " " << input2 << " "; // 들는 뒤 보 더 (for문 러 방) if (input1 > input2) { int swap = input1; input1 = input2; input2 = swap; } for (i = input1; i <= input2; i++) { temp = cycle_length(i); // cycle legnth if (temp > max_count) max_count = temp; // 를 max_count } cout << max_count << endl; } return 0; } // cycle length int cycle_length(int input) { int argument = input; // int count = 0; // 변 while (true) { // 료 if (argument == 1) { count++; break; } // LSB 0면 , 1면 . if ((argument & 1) == 0) { // 2는 right shift를 번 는 . argument >>= 1; count++; } else { // 면 . argument = 3 * argument + 1; argument >>= 1; count += 2; } } return count; }