(简单模拟2.4.2)POJ 1207 The 3n + 1 problem(直叙式模拟――输入时前一个数可能比后一个数要大,但输出时原样输出)

2014-11-24 03:26:02 · 作者: · 浏览: 1
/*
 * POJ_1207.cpp
 *
 *  Created on: 2013年10月24日
 *      Author: Administrator
 */

#include 
  
   
#include 
   
     using namespace std; int main() { int a, b; while (scanf("%d%d", &a, &b) != EOF) { int x,y; //注意 :前一个数可能会比后一个数大,在这里需要处理一下,但输出时原样输出 if(a >
b){ x = b; y = a; }else{ x = a; y = b; } int n; int max = 0; for (n = x; n <= y; ++n) { int counter = 1; int m = n; while (m != 1) { counter++; if (m % 2 == 0) { m /= 2; } else { m = 3 * m + 1; } } if (counter > max) { max = counter; } } printf("%d %d %d\n",a,b,max); } return 0; }