zoukankan      html  css  js  c++  java
  • POJ 1207 3N+1 Problem

    更简单的水题,穷举法即可。

    需要注意的点:

    1.i 和 j的大小关系不确定,即有可能 i>j

    2.即使i>j,最后输出的结果也要严格按照输出,亦即如果输入10,1,则对应输出也应为 10 1 20而不是1 10 20

    代码如下:

     1 /* 
     2  * File:   1207.h
     3  * Author: chrischeng021 <chrischeng021@gmail.com>
     4  *
     5  * Created on July 9, 2015, 5:07 PM
     6  */
     7 
     8 #ifndef _1207_H
     9 #define    _1207_H
    10 
    11 int calculate(int n){
    12     int count = 1;
    13     while(n != 1){
    14         n = (n%2 == 0 ? n/2 : 3*n+1);
    15         count++;
    16     }
    17     return count;
    18 }
    19 
    20 void process(){
    21     int i,j,k,ret,tmp,left,right;
    22     while(scanf("%d%d",&i, &j) != EOF && i > 0){
    23         ret = 0;
    24         if(i < j){
    25             left = i;
    26             right = j;
    27         }
    28         else{
    29             left = j;
    30             right = i;
    31         }
    32         for(k = left;k <= right;k++){
    33             tmp = calculate(k);
    34             ret = ret > tmp ? ret : tmp;
    35         }
    36         printf("%d %d %d
    ",i, j, ret);
    37     }
    38 }
    39 #endif    
    40 /* _1207_H */
  • 相关阅读:
    魅族--魅蓝metal
    小米2015.11.24 雷军:我所有的向往
    微软2015.10.4发布会
    创意app1
    奇怪的想法2
    奇怪想法1
    对不起,我爱你(悲剧,慎入)
    聊聊台式机1
    聊聊笔记本1--人生第一台笔记本
    聊聊路由器1
  • 原文地址:https://www.cnblogs.com/chrischeng/p/4633717.html
Copyright © 2011-2022 走看看